当前位置: 首页 > 编程笔记 >

Django 将更改应用到数据库(迁移)

松思源
2023-03-14
本文向大家介绍Django 将更改应用到数据库(迁移),包括了Django 将更改应用到数据库(迁移)的使用技巧和注意事项,需要的朋友参考一下

示例

创建新模型或修改现有模型后,您将需要为更改生成迁移,然后将迁移应用于指定的数据库。这可以通过使用Django的内置迁移系统来完成。manage.py在项目根目录中使用实用程序:

pythonmanage.pymakemigrations <appname>

上面的命令将在migrations应用程序的子目录下创建必需的迁移脚本。如果省略该<appname>参数,则将处理在INSTALLED_APPS参数中定义的所有应用settings.py程序。如果发现必要,则可以编辑迁移。

您可以使用--dry-run选项检查需要进行哪些迁移,而无需实际创建迁移,例如:

pythonmanage.pymakemigrations --dry-run

要应用迁移,请执行以下操作:

pythonmanage.pymigrate <appname>

上面的命令将执行第一步中生成的迁移脚本,并以物理方式更新数据库。

如果现有数据库的模型已更改,则需要以下命令进行必要的更改。

pythonmanage.pymigrate --run-syncdb

Django<appname>_<classname>默认会使用名称创建表。有时您不想使用它。如果要更改默认名称,可以通过db_table在类中设置来声明表名称Meta:

fromdjango.dbimport models

class YourModel(models.Model):
    parms = models.CharField()
    class Meta:
        db_table = "custom_table_name"

如果要查看特定迁移将执行的SQL代码,请运行以下命令:

pythonmanage.pysqlmigrate <app_label> <migration_number>

Django> 1.10当检测到没有迁移的模型更改时
,新makemigrations --check选项使命令以非零状态退出。

有关迁移的更多详细信息,请参见迁移。

 类似资料:
  • 我正在尝试配置Spring Boot和Flyway,以便使用Spring Boot 2.2.6和Flyway 5.2.3对两个不同的数据源应用单独的迁移。 主要数据源: 第二个数据源: 数据源连接属性: Flyway迁移: 目录结构: 迁移脚本仅正确应用于数据库。 问题是,和中的脚本被应用到数据库,而只应用主目录中的脚本。 如何配置Flyway以仅将目录中的迁移脚本应用于数据库?

  • 问题内容: 我正在考虑将Django用于我要开始的项目(fyi,一个基于浏览器的游戏),而我最喜欢的功能之一就是根据我定义的Django模型自动创建数据库表(我似乎在其他任何框架中都找不到的功能)。当我在文档中看到此内容时,我已经认为这太好了,无法实现: Syncdb不会更改现有表 syncdb将仅为尚未安装的模型创建表。安装后,它将永远不会发出ALTER TABLE语句来匹配对模型类所做的更改。

  • 问题内容: 我有一个具有表的应用程序,当您单击表中的项目时,它会使用其数据(FieldGroup)填充一组文本字段,然后您可以选择保存更改, 我想知道如何保存更改用户对我的postgres数据库进行的更改 。我正在为此应用程序使用vaadin和hibernate模式。到目前为止,我已经尝试做 我努力了 而且我也尝试过 最后两个给我以下错误 问题答案: 我已经弄清楚了如何对数据库进行更改,下面是一些

  • 我正在构建一个Django应用程序,它有几个应用程序。使用SQLite数据库作为后端运行良好。当我试图使用“manage.py migrate”将后端迁移到Oracle时,我发现了以下错误 django.db.utils.DatabaseError:ORA-01950:对表空间“XXXXXX”没有权限 当我在数据库中检查我的用户权限时,它有创建表、视图等的权限。我尝试执行“manage.py sq

  • 我正在寻找最好的方法来迁移我的应用程序数据库,它使用firebase实时数据库到新的云Firestore数据库。对于我正在进行的项目,我确信我不需要做任何数据模式的更改,所以我几乎只是尝试1-1映射它。Firebase在他们的网站上建议只编写一个脚本来实现这一点,但我不确定最好的方法。有没有人已经做了一个脚本来完成这件事?