【问题标题】:Best way to modify the specs of a column in Django在 Django 中修改列规格的最佳方法
【发布时间】:2012-01-04 06:34:08
【问题描述】:

我将 Django 与 Postgres 和 Heroku 一起使用。我有一个看起来像这样的 post 表。

 class Post( models.Model ):
       .
       .
       content1 = models.CharField(max_length=1000)
       .

我的一个朋友告诉我限制太小,现在我想将 maxlength 更改为 10000。我可以考虑通过创建一个名为 content2 的新列然后从 content1 复制内容然后删除来交替表内容1。我对此很陌生,想知道解决这个问题的最佳方法是什么。

10000 是否适合博客文章的长度? :D

【问题讨论】:

  • 这并不能直接解决您的问题,但models.TextField 比CharField 更适合写博客文章。

标签: django postgresql heroku


【解决方案1】:

您可以使用 dumpdata 将数据保存到 json 文件并在重新创建后重新加载,也可以使用新参数手动 ALTER 表。或者你可以使用南。

South 为 django 提供数据库迁移(称为更改表格布局)。

pip install south

将南添加到 INSTALLED_APPS 然后运行

python manage.py schemamigration --initial your_app_name
python manage.py migrate --fake your_app_name

对 models.py 进行更改,然后运行

python manage.py schemamigration --auto your_app_name
python manage.py migrate your_app_name

现在,如果您要在多台机器上更改相同的数据库布局,请将创建的迁移文件签入 git 并在所有需要更新的机器上运行“迁移”命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2010-11-09
    相关资源
    最近更新 更多