-
Notifications
You must be signed in to change notification settings - Fork 460
Open
Description
Describe the bug
If field has a default value specified, schema editor doesn't pass it through to SQL.
To Reproduce
Example model:
class DummyDefault(models.Model):
default_str = fields.CharField(max_length=255, null=True, default="My default string")
default_int = fields.IntField(default=1337)
default_bool = fields.BooleanField(default=True)
default_datetime_auto_now = fields.DatetimeField(auto_now=True)
default_datetime_auto_now_add = fields.DatetimeField(auto_now_add=True)Calling tortoise makemigrations correctly generates the migration file, and also every default is present in the migration file.
However tortoise sqlmigrate and tortoise migrate generate below SQL which is missing all the default values
CREATE TABLE "dummydefault" (
"id" SERIAL NOT NULL PRIMARY KEY,
"default_str" VARCHAR(255),
"default_int" INT NOT NULL,
"default_bool" BOOL NOT NULL,
"default_datetime_auto_now" TIMESTAMPTZ NOT NULL,
"default_datetime_auto_now_add" TIMESTAMPTZ NOT NULL
);If altering a columns default later on, I've switched default_datetime_auto_now field from auto_now=True to auto_now_add=True it correctly generates a migration file, but the sqlmigrate returns an empty SQL.
Expected behavior
Default values should be present in the SQL.
CREATE TABLE "dummydefault" (
"id" SERIAL NOT NULL PRIMARY KEY,
"default_str" VARCHAR(255) DEFAULT 'My default string',
"default_int" INT NOT NULL DEFAULT 1337,
"default_bool" BOOL NOT NULL DEFAULT True,
"default_datetime_auto_now" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
"default_datetime_auto_now_add" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
);This expected sql was generated via from tortoise.utils import get_schema_sql
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels