PostgIS에 ogr2ogr을 사용하여 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
안녕하세요, @Reiion 내 대답이 도움이 되었습니까? 문제를 해결 했습니까? –