ogr2ogrをPostGISに使用してGeojsonデータを正常にインポートしました。 python manage.py inspectdb
もちろんPostgres/PostGISでのdjangoモデルの移行が反映されない
class Route(models.Model):
ogc_fid = models.AutoField(primary_key=True)
distance = models.FloatField(blank=True, null=True)
route_type = models.CharField(max_length=-1, blank=True, null=True)
route_long = models.CharField(max_length=-1, blank=True, null=True)
route_name = models.CharField(max_length=-1, blank=True, null=True)
agency_id = models.ForeignKey(max_length=-1, blank=True, null=True)
route_id = models.CharField(max_length=-1, blank=True, null=True)
route_url = models.CharField(max_length=-1, blank=True, null=True)
route_desc = models.CharField(max_length=500, blank=True, null=True)
duration = models.FloatField(blank=True, null=True)
shape_id = models.IntegerField(blank=True, null=True)
route_tcolor = models.CharField(max_length=-1, blank=True, null=True)
route_color = models.CharField(max_length=-1, blank=True, null=True)
wkb_geometry = models.LineStringField(blank=True, null=True)
class Meta:
managed = False
db_table = 'network_route'
、私は正の整数にmax_length
を変更する必要がありましたので、私がしたTrue
にmanage
を設定します。
は、私は、次のコマンドを実行します。
さらに、追加のカラム、created_at
およびupdated_at
を追加しました。以下の最終モデルに結果の
:
class Route(models.Model):
ogc_fid = models.AutoField(primary_key=True)
distance = models.FloatField(blank=True, null=True)
route_type = models.CharField(max_length=100, blank=True, null=True)
route_long = models.CharField(max_length=200, blank=True, null=True)
route_name = models.CharField(max_length=100, blank=True, null=True)
agency_id = models.ForeignKey(Agency, on_delete=models.CASCADE)
route_id = models.CharField(max_length=100, blank=True, null=True)
route_url = models.CharField(max_length=300, blank=True, null=True)
route_desc = models.CharField(max_length=500, blank=True, null=True)
duration = models.FloatField(blank=True, null=True)
shape_id = models.IntegerField(blank=True, null=True)
route_tcolor = models.CharField(max_length=100, blank=True, null=True)
route_color = models.CharField(max_length=100, blank=True, null=True)
wkb_geometry = models.LineStringField(blank=True, null=True)
created_at = models.DateTimeField(default=timezone.now(),editable=False)
updated_at = models.DateTimeField(blank=True, null=True)
objects = models.GeoManager()
class Meta:
managed = True
db_table = 'network_route'
def save(self, *args, **kwargs):
#On save, update timestamps
if not self.id:
self.created_at = timezone.now()
self.updated_at = timezone.now()
return super(Route, self).save(*args, **kwargs)
def __str__(self):
return self.route_id
は、私が実行します。makemigrations [appname]
とそれだけで私は、このようなcreated_at
とupdated_at
としてモデルに追加の変更を加えることができますどのようにMeta
- Change Meta options on route
の変化を検出し、マイグレーションによって捕らえられる?
何か間違っていますか?
レガシーコードを改装しようとしていますか?保存しなければならないデータベースがありますか? –
@JohnMoutafisまあ、はい。私はまだそれを設定しているので、実際に私はそれをすべてやり直すことができます。しかし、私の問題は、例えば、私のモデルに別のフィールドを追加する必要がある場合、どうやってそれをやり直すかなど、どうすればいいのでしょうか? – Reiion
ちょっと、私は答えてくれましたか?あなたはあなたの問題を解決しましたか? –