Ram*_*i_H 10 database django database-migration
我正在使用Django(<v1.7),SQLite3作为数据库引擎.
我正在尝试向现有模型的类中添加一个新字段.该类已经有与之关联的数据.
manage.py syncdb 没有将新字段添加到数据库.
有没有办法:
将新Field添加到现有类中,并确保为其分配了db条目?
对于所有已存在的数据库条目,使用空字符串填充此新字段?
Yuj*_*ita 18
这个答案仍然可见,但已经过时了.由于1.7 Django附带了内置的迁移系统,由同一作者编写South,并且已经弃用,syncdb但它仍然有效.
您只需运行一些命令即可自动添加新列:
python manage.py makemigrations
python manage.py migrate
Run Code Online (Sandbox Code Playgroud)
了解幕后发生的事情会很有用,但这些都是基础知识.如果您还在阅读这篇旧帖子,请提出新问题以获得1.7和迁移的答案.
syncdb不会添加任何新列.请参阅
http://docs.djangoproject.com/en/dev/ref/django-admin/#syncdb
您必须手动添加它们.例如,.替换<>相关信息:
python manage.py dbshell
ALTER TABLE <appname_modelname> ADD COLUMN <column_type> DEFAULT '';
Run Code Online (Sandbox Code Playgroud)
您可以看到Django可能syncdb通过使用以下方式生成新的列:
python manage.py sqlall app_name
Run Code Online (Sandbox Code Playgroud)
并ALTER TABLE从那里复制和粘贴声明.
否则,您可以查看Django-South等第三方应用程序,它们是数据库迁移工具.
| 归档时间: |
|
| 查看次数: |
19977 次 |
| 最近记录: |