我刚刚开始使用Django(1.8),我对如何修改模型感到有些困惑。
如果我进入并向现有模型添加新字段,我会开始收到“No Such Column”错误。到目前为止,我刚刚擦拭我的数据库并重新开始,但这很烦人,有没有这个过程?
我去制作时会发生什么?那时我该如何修改架构?我在网上看到的所有资源都是针对南方的,我猜这个资源已经内置到这个版本的django中,但仍然找不到任何可靠的信息。
由于
答案 0 :(得分:2)
在django 1.7+中,不需要south
。只有
python manage.py makemigrations
python manage.py migrate
如果您要从django 1.7-中的现有应用程序进行切换,那么您需要执行文档中列出的一个预步骤(我发现):
python manage.py makemigrations your_app_label
也试试这个
class Mymodel(models.Model):
myfiled = models.CharField()
# ...
class Meta:
managed = True
答案 1 :(得分:0)
您可以编写自己的sql命令来添加缺少的列,从而为您提供该错误。 第一次运行:
python manage.py makemigrations --empty yourappname
然后您可以转到您的应用并找到新生成的迁移文件 代码类似于下面的代码。
我不确定要添加的列类型,但在下面的代码中operations
内,您可以输入sql命令。在我的例子中,我只是添加一个字符变化字段。
class Migration(migrations.Migration):
dependencies = [
('app_name', '0002_auto_20150619_2439'),
]
operations = [
migrations.RunSQL('ALTER TABLE mytable ADD COLUMN mycolumn character varying(50) NOT NULL')
]
我希望这会有所帮助。