Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django同步数据库问题_Python_Django_Django Models - Fatal编程技术网

Python django同步数据库问题

Python django同步数据库问题,python,django,django-models,Python,Django,Django Models,在django模型中,表示此模型存在于details/models.py中 class OccDetails(models.Model): title = models.CharField(max_length = 255) occ = models.ForeignKey(Occ) 因此,当创建sync db时,将创建以下字段 之后,又添加了两个字段,并创建了sync db。新字段不会被创建。如何解决这个问题,下面的auto_now=true是什么 这些是新

在django模型中,表示此模型存在于details/models.py中

    class OccDetails(models.Model):
       title = models.CharField(max_length = 255)
       occ = models.ForeignKey(Occ)
因此,当创建sync db时,将创建以下字段

之后,又添加了两个字段,并创建了sync db。新字段不会被创建。如何解决这个问题,下面的auto_now=true是什么

这些是新的领域

         created_date = models.DateTimeField(auto_now_add=True)
         modified_date = models.DateTimeField(auto_now_add=True, auto_now=True)
为尚未创建表的已安装应用中的所有应用创建数据库表

Syncdb不会更改现有表
syncdb
将仅为尚未安装的型号创建表。它永远不会发出
altertable
语句来匹配安装后对模型类所做的更改。对模型类和数据库模式的更改通常涉及某种形式的歧义,在这种情况下,Django必须猜测正确的更改。在此过程中存在关键数据丢失的风险

你也可以

  • 发出手动
    ALTER TABLE
    命令
  • 删除表
    特定表(将丢失数据)并再次运行syncdb
  • 运行以获取sql语句列表以清除整个数据库并运行这些命令(将刷新数据库-您将丢失所有现有数据)或

:每次保存对象时自动将字段设置为
NOW()
。用于“上次修改”时间戳。请注意,始终使用当前日期;它不仅仅是一个可以覆盖的默认值


因此,每次调用
object.save()

时,
modified\u date
列将自动更新这是Django的常见问题。正如Amarghosh所说,syncdb不能修改现有表的模式

已创建以解决此问题

我确实推荐它