我正处于开发的初始阶段,模型正在发生很大变化。
我必须继续删除旧表,然后执行“syncdb”
虽然我很欣赏 syncdb 不改变旧表的原因,
我正处于开发的初始阶段,模型正在发生很大变化。
我必须继续删除旧表,然后执行“syncdb”
虽然我很欣赏 syncdb 不改变旧表的原因,
我通常这样做的方式是在数据库级别。例如,如果您正在使用 postgres,并且只是想吹走整个数据库以重新开始,您可以这样做:
dropdb -U postgres "dbname"
createdb -U postgres -O "db_user" "db_name"
对于我正在进行的长期项目,我使用fabfile来自动执行上述任务,以及从我的生产服务器获取最新的数据库,并覆盖我的本地开发数据库。
此外,相关的是数据库“迁移”,当您在生产环境中运行一段时间后更改代码时,这将成为一项要求。很多人/应用程序使用South,但我更喜欢Nashvegas作为我的网站。
使用 Nashvegas,我将创建一个 0001_add_field_blah.sql 文件,其中包含用于更改数据库的原始 SQL 命令。例如:
ALTER TABLE myapp_model RENAME COLUMN first_name TO given_name;
我用python manage.py reset <app>
. 我不认为有办法在整个项目范围内做到这一点。