0

我正处于开发的初始阶段,模型正在发生很大变化。
我必须继续删除旧表,然后执行“syncdb”

虽然我很欣赏 syncdb 不改变旧表的原因,

是否可以(或有其他选择)自动删除旧表然后运行syncdb?

4

2 回答 2

2

我通常这样做的方式是在数据库级别。例如,如果您正在使用 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;
于 2012-06-02T17:44:36.307 回答
0

我用python manage.py reset <app>. 我不认为有办法在整个项目范围内做到这一点。

于 2012-06-02T17:25:53.077 回答