今天,在Django项目的开发过程中,我遇到了一个恼人的问题,当时我正试图在测试数据库和开发数据库之间切换,而我似乎无法找到解决迁移问题的可靠方法。
测试数据库
我正在访问
和往常一样,我通过Django settings.py进行了迁移,添加了
客户
您在下面的代码中看到的字段。
德夫德布
在my Django的settings.py中运行
,以及我的
客户
字段未添加到新数据库中。当我跑的时候
正如预期的那样,我得到“未检测到任何更改”。
我没有看到比编写我自己的脚本更好的方法来处理这个问题,该脚本确保所有模型表都存在于我连接到的任何数据库中,并且所有模型字段都位于每个表中,否则会更改表并添加相应的列,这就引出了我的问题。。。
python manage.py sqlmigrate objects 0001
(这是我的0001_initial.py文件),下面是创建代码:
CREATE TABLE "objects_users" (
"id" serial NOT NULL PRIMARY KEY,
"clientID" integer NOT NULL,
"email" varchar(100) NOT NULL,
"first_name" varchar(100) NOT NULL,
"last_name" varchar(100) NOT NULL,
"phone" varchar(100) NOT NULL,
"password" varchar(100) NOT NULL,
"type" varchar(100) NOT NULL,
"date_created" timestamp with time zone NOT NULL,
"active" varchar(100) NOT NULL);
大钞
空=真
模型字段
到目前为止,我已经能够解决我的问题,清除连接到的任何数据库,然后运行
python manage.py迁移
基于初始迁移文件,但对于无法重置所有内容的生产实例,这不是有效的解决方案。
我需要一些想法,我认为ALTERTABLE语句基于我从中获得的字符串
python manage.py sqlmigrate objects 0001
到目前为止是最好的,但我愿意接受任何可以解决我的问题的方法,所以我不必再担心这个问题了。