我是一名有用的助手,可以翻译文本。
我遇到了一个关于表格默认值的问题。
例如,我有这个模型:
迁移 sqlmigrate 的输出如下:
但是,如果我修改模型中的默认值,并运行makemigrations/migrate,然后查看sqlmigrations时,输出会在创建后生成一个奇怪的DROP DEFAULT。
我遇到了一个关于表格默认值的问题。
例如,我有这个模型:
class model1(models.Model):
field1 = models.CharField(max_length=50, default='My Default Value 1',db_column='field1')
field2 = models.CharField(max_length=10)
class Meta:
db_table = 'model1'
postgresql表格生成时未使用默认值:
mydb=# \d model1
Table "public.model1"
Column | Type | Modifiers
--------+-----------------------+-----------------------------------------------------
id | integer | not null default nextval('model1_id_seq'::regclass)
field1 | character varying(50) | not null
field2 | character varying(10) | not null
Indexes:
"model1_pkey" PRIMARY KEY, btree (id)
迁移 sqlmigrate 的输出如下:
CREATE TABLE "model1" ("id" serial NOT NULL PRIMARY KEY, "field1" varchar(50) NOT NULL, "field2" varchar(10) NOT NULL);
COMMIT;
但是,如果我修改模型中的默认值,并运行makemigrations/migrate,然后查看sqlmigrations时,输出会在创建后生成一个奇怪的DROP DEFAULT。
ALTER TABLE "model1" ALTER COLUMN "field1" SET DEFAULT 'My Default Value 1 modified';
ALTER TABLE "model1" ALTER COLUMN "field1" DROP DEFAULT;
COMMIT;
我是否遗漏了什么,或者列的默认值只是不受支持?