所以我有一个django安装,其中有一堆迁移脚本。它们看起来是这样的:
00001_initial.py
00002_blah_blah.py
00003_bleh_bleh.py
现在我知道这些是“数据库构建”脚本,它们将获取在models.py
中定义的内容,并对数据库运行它们来“创建”表和内容。
我想创建一个新表(所以我在models.py中创建了它的定义)。为此,我复制了另一个模型类并编辑了它的名称和字段,一切正常。让我们把这个新的模型类称为“boom”。
我现在的问题是如何使用迁移脚本和boom模型“创建”这个boom表?
我担心我可能会不小心破坏数据库中已经存在的任何东西。如何运行迁移以仅创建boom表?如何专门为它创建迁移脚本?
我知道这与manage.py
和运行migrate
或runmigration
(或者是sqlmigrate
?)有关?。。。我很困惑)。在创建boom表时,如果您知道我的意思,我不希望数据库运行
迁移的关键是
有关详细信息,请参阅:https://docs.djangoproject.com/en/1.10/topics/migrations/
请放心,你的数据库不会爆炸!:-)
在Django有两个迁移步骤。
将创建您看到的迁移文件-这些文件描述应对数据库进行的更改。
你还需要跑
这将应用迁移并在SQL中实际运行alter table命令来更改实际的数据库结构。
通常,添加字段或表不会影响数据库中的任何其他内容。更改或删除现有字段时要更加小心,因为这可能会影响数据。
有两个步骤的原因是,这样您就可以在开发人员机器上进行更改,并在很高兴的情况下提交迁移文件并将其发布到生产环境中。然后在生产计算机上运行migrate命令,使生产数据库处于与开发计算机相同的状态(假设数据库启动时相同,则无需在生产计算机上进行makemigration)。
首先,创建数据库的备份。把它复制到你的开发机器上。试试这个。这样一来,它是否真的因为某种原因而“繁荣”并不重要。
首先要做的是
这显示了所有现有的迁移,而且应该显示它们已经用
[X]
应用。那么
为新型号(名称00004)创建新的迁移文件。
那就去吧
应用它。要撤消它,请返回到迁移00003的状态,并使用
相关问题 更多 >
编程相关推荐