在postgres表

时间:2015-06-13 15:32:24

标签: django postgresql migration database-migration

当我最初布置我的桌子时,我出于任何理由使用PositiveIntegerField付出代价。现在我把它改成了DecimalField,这更有意义。

迁移在本地工作(sqlite)并且似乎在我的开发服务器上成功了。但是,迁移对我的postgres开发服务器没有影响。

这是迁移命令的输出。

DJANOG_SETTINGS_MODULE=runner.dev_settings ./manage.py migrate
Operations to perform:
  Apply all migrations: userprofiles, sessions, admin, sites, auth, contenttypes, inventory
Running migrations:
  Applying inventory.0004_auto_20150613_1446... OK

迁移后,这是pgsql中的模式。

                                     Table "public.inventory_baseitem"
     Column      |          Type          |                            Modifiers                            
-----------------+------------------------+-----------------------------------------------------------------
 id              | integer                | not null default nextval('inventory_baseitem_id_seq'::regclass)
 title           | character varying(100) | not null
 price           | integer                | not null
 units           | integer                | not null
 weight_lbs      | integer                | not null
 weight_ozs      | integer                | not null
 content_type_id | integer                | not null
...

正如您所看到的,价格列的类型仍然是整数。 令人沮丧的是,如果我重新运行迁移,django说没有可以应用的迁移。

虽然这不是一个生产环境,但如果最坏的情况发生,我可以做一个手动转换表。这样做会破坏django迁移的目的。

根据反馈,我的django版本是1.7。 我的迁移如下:

class Migration(migrations.Migration):

    dependencies = [
        ('inventory', '0003_auto_20150613_1439'),
    ]

    operations = [
        migrations.AlterField(
            model_name='baseitem',
            name='price',
            field=models.DecimalField(default=0, max_digits=20, decimal_places=2),
        ),
    ]

我会尝试升级我的django版本是不会带来太多重大变化。

0 个答案:

没有答案