使用 settings.py 或 models.py 在 Django 中自动创建数据库

sun*_*eet 5 python django

当前流量:

1) mysql >> CREATE {DATABASE} db_name  [create_specification] ;
2) change database info in settings.py
3) python manage.py syncdb (assuming we have ready-made models)
Run Code Online (Sandbox Code Playgroud)

有没有办法在不使用步骤 1 的情况下做同样的事情。也许将数据库名称和规范放在 settings.py 中的某处,这样我就不必每次将这个项目转移到某个服务器时手动配置数据库

编辑- 为什么我想避开第一步:

就我而言,不同表的不同列具有不同的排序规则类型。因此,在开发过程中,每当我重新创建数据库时,我都需要手动更改各个列/表的配置,这令人沮丧。

dan*_*era 4

所需要的只是使用 grant create database 知道数据库用户/密码,所有其他数据都在设置中。您可以将自定义命令连接到pre_syncdb信号来收集此数据。

查看在 post_syndb 信号上引发的createsuperuser以了解这一点。

编辑

syncdb 不再可用。从 1.9 开始你应该使用pre_migrate信号。

  • 请添加一个详细示例。对于像我这样的新手来说,这几乎就像胡言乱语。 (4认同)