[GH-ISSUE #114] PostgreSQL as backend. Migration not work. #75

Open
opened 2026-02-27 15:57:14 +03:00 by kerem · 0 comments
Owner

Originally created by @kenmlee on GitHub (May 14, 2016).
Original GitHub issue: https://github.com/retspen/webvirtcloud/issues/114

When I try to use PostgreSQL as database backend. The app "logs" report error when I try to use "python manage.py migrate".

After check I think there are some bugs ( maybe it's a bug of Django 1.8 ):

In logs/migrations/0001_initial.py

        migrations.CreateModel(
            name='Logs',
            fields=[
                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                ('message', models.CharField(max_length=255)),
                ('date', models.DateTimeField(auto_now=True)),
                ('instance', models.ForeignKey(to='instances.Instance')),
                **('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)),**
            ],
            options={
            },
            bases=(models.Model,),
        ),

Pay attention to "('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)),"

In logs/migrations/0002_xxxxx.py

        **migrations.AddField(**
            model_name='logs',
            name='user',
            field=models.ForeignKey(to=settings.AUTH_USER_MODEL),
            preserve_default=False,
        ),
        **migrations.AlterField(**
            model_name='logs',
            name='date',
            field=models.DateTimeField(auto_now=True),
            preserve_default=True,
        ),

For field "user", it should be "migrations.AlertField" just like field "date". But it use "migrations.AddField".

Then I run "python manage.py squashmigrations logs 0003", it generate two fields with the same name "user" as:

        migrations.CreateModel(
            name='Logs',
            fields=[
                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                ('message', models.CharField(max_length=255)),
                ('date', models.DateTimeField(auto_now=True)),
                ('instance', models.CharField(max_length=50)),
                **('user', models.CharField(max_length=50)),**
                **('user', models.CharField(max_length=50)),**
            ],
        ),

The last two line.

Originally created by @kenmlee on GitHub (May 14, 2016). Original GitHub issue: https://github.com/retspen/webvirtcloud/issues/114 When I try to use PostgreSQL as database backend. The app "logs" report error when I try to use "python manage.py migrate". After check I think there are some bugs ( maybe it's a bug of Django 1.8 ): In logs/migrations/0001_initial.py ``` migrations.CreateModel( name='Logs', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('message', models.CharField(max_length=255)), ('date', models.DateTimeField(auto_now=True)), ('instance', models.ForeignKey(to='instances.Instance')), **('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)),** ], options={ }, bases=(models.Model,), ), ``` Pay attention to "('user', models.ForeignKey(to=settings.AUTH_USER_MODEL))," In logs/migrations/0002_xxxxx.py ``` **migrations.AddField(** model_name='logs', name='user', field=models.ForeignKey(to=settings.AUTH_USER_MODEL), preserve_default=False, ), **migrations.AlterField(** model_name='logs', name='date', field=models.DateTimeField(auto_now=True), preserve_default=True, ), ``` For field "user", it should be "migrations.AlertField" just like field "date". But it use "migrations.AddField". Then I run "python manage.py squashmigrations logs 0003", it generate two fields with the same name "user" as: ``` migrations.CreateModel( name='Logs', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('message', models.CharField(max_length=255)), ('date', models.DateTimeField(auto_now=True)), ('instance', models.CharField(max_length=50)), **('user', models.CharField(max_length=50)),** **('user', models.CharField(max_length=50)),** ], ), ``` The last two line.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/webvirtcloud#75
No description provided.