繁体   English   中英

如何从Django模型更改sqlite表列的值类型?

[英]How to change a sqlite table column value type from Django model?

我在编写Django应用程序代码之前创建了一个表,现在使用以下命令python manage.py inspectdb > models.py合并了该应用程序和该表。 但是过了一会儿,我真的需要更改列之一的值类型。 是否足以遍历模型文件,还是我需要一些其他步骤?

如果更改Django模型中的字段,则Django本身不知道如何相应地更新数据库( syncdb仅从新模型中添加表)。

您有两种选择:

  • 手动创建数据库表;
  • 使用像South这样的迁移工具,该工具可以根据对模型所做的更改来检测并生成迁移文件;

我建议使用第二个选项,因为它是程序性的,更能防止出错,并且在需要在数据库模式之间来回切换时使您的生活更轻松。

有一个简单的方法可以做到这一点。 (在Django 2中)

对应用程序的model.py文件进行必要的更改后,运行命令:

  • python manage.py makemigrations这将在应用程序的迁移文件夹中生成一个新文件。
  • python manage.py migrate这会将这些编辑应用于实际的数据库。

要检查是否已应用更改,请在输入sqlite命令行程序后在终端中运行命令: .schema <tablename>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM