使用django和south时如何初始化django数据库
我尝试编写一个脚本来重置并重新初始化新的 django 应用程序的数据库。为了检测任何错误,我想检查每个命令的返回代码。
#! /bin/env python
import sys, os
def execute⌘:
print(cmd)
ret = os.system(cmd)
if not ret:
sys.exit("Last command failed")
if __name__ == "__main__":
if os.path.isfile('app.sqlite'):
os.unlink('app.sqlite')
execute('python manage.py syncdb --noinput --all') # << this fails
execute('python manage.py migrate --noinput --all')
我的问题是我无法找到安全地重新初始化数据库的方法。运行 migrate
失败,因为它需要 syncdb
,而 syncdb
失败,因为它需要 migrate
。
不要要求我忽略命令的返回代码,我想要一个能够正确处理错误代码的解决方案。
I try to write a script that will reset and reinitialize the database for a new django application. In order to detect any error I want to check the return code of each command.
#! /bin/env python
import sys, os
def execute⌘:
print(cmd)
ret = os.system(cmd)
if not ret:
sys.exit("Last command failed")
if __name__ == "__main__":
if os.path.isfile('app.sqlite'):
os.unlink('app.sqlite')
execute('python manage.py syncdb --noinput --all') # << this fails
execute('python manage.py migrate --noinput --all')
My problem is that I wasn't able to find a way to safely re-initialize the database. Running migrate
fails because it requires syncdb
and syncdb
fails because it requires migrate
.
Do not ask me to ignore the return codes from the commands, I want a solution that is able to properly deal with error codes.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您使用
sys.exit()
的方式不正确。您可以引发异常(“错误消息”)
。此外,有关您所看到内容的错误消息将有助于更好地回答您的问题。
是否:
解决了您的问题?
也许你应该检查:
You're using
sys.exit()
improperly. You couldraise Exception("error message")
.Also, an error message as to what you're seeing would be helpful to better answer your question.
Does:
solve your issue?
Perhaps you should be checking: