在夹层中切换数据库后端
Switching database backend in Mezzanine
我正在尝试编写一系列示例的脚本,其中 reader 以增量方式构建 Web 应用程序。第一阶段使用 Mezzanine 的默认配置,使用内置的 SQLlite:
sudo pip install mezzanine
sudo -u mezzanine python manage.py createdb
初始示例完成后,我想将现有设置切换到 mysql 后端。如果那太复杂,我至少想在新后端重新创建 Mezzanine 附带的内置示例,但 Mezzanine 不允许重新 运行 createdb
CommandError: Database already created, you probably want the migrate command
这看起来应该非常简单,但我似乎无法完全正确(而且仅 migrate
并不能解决问题)。 Google 和官方文档也没有帮助。
我正在采取的步骤:首先,我在 Amazon RDS 上创建一个 MySQL 数据库。然后,我在 myapp/local_settings 中为它设置适当的配置(我确信这些步骤是正确的)。那么:
sudo apt install python-mysqldb
sudo -u mezzanine python /srv/mezzanine/manage.py migrate
然后:
Running migrations:
No migrations to apply.
我错过了什么?
Mezzanine 项目基于 Python 框架 Django。
除非你遇到夹层特定的问题,否则大多数问题都可以通过弄清楚它是如何用 Django 方式解决的。
Migrations 只是 Django 在 数据库中引用更改和修正 的方式,即模式(因为应用程序和数据库不断发展是变质的)。
为了实际迁移数据,您可以:
导出当前数据库的内容,eg:
./manage.py 转储数据 > db-dump-in-json.json
./manage.py --format=xml > db-dump-in-xml.xml
如果数据过多或内存不足,这可能会导致崩溃。那么事情就是使用本机数据库工具来获取 dump.
在 settings.py
中创建并添加新数据库的设置:
创建表并在新定义的数据库上设置它们(基于您的模型):
./manage.py makemigrations
./manage.py迁移
createdb
= syncdb
(创建)+ migrate
(设置)合并
并在那里重新加载导出的数据:
./manage.py loaddata db-dump-in-json.json
我正在尝试编写一系列示例的脚本,其中 reader 以增量方式构建 Web 应用程序。第一阶段使用 Mezzanine 的默认配置,使用内置的 SQLlite:
sudo pip install mezzanine
sudo -u mezzanine python manage.py createdb
初始示例完成后,我想将现有设置切换到 mysql 后端。如果那太复杂,我至少想在新后端重新创建 Mezzanine 附带的内置示例,但 Mezzanine 不允许重新 运行 createdb
CommandError: Database already created, you probably want the migrate command
这看起来应该非常简单,但我似乎无法完全正确(而且仅 migrate
并不能解决问题)。 Google 和官方文档也没有帮助。
我正在采取的步骤:首先,我在 Amazon RDS 上创建一个 MySQL 数据库。然后,我在 myapp/local_settings 中为它设置适当的配置(我确信这些步骤是正确的)。那么:
sudo apt install python-mysqldb
sudo -u mezzanine python /srv/mezzanine/manage.py migrate
然后:
Running migrations:
No migrations to apply.
我错过了什么?
Mezzanine 项目基于 Python 框架 Django。
除非你遇到夹层特定的问题,否则大多数问题都可以通过弄清楚它是如何用 Django 方式解决的。
Migrations 只是 Django 在 数据库中引用更改和修正 的方式,即模式(因为应用程序和数据库不断发展是变质的)。
为了实际迁移数据,您可以:
导出当前数据库的内容,eg:
./manage.py 转储数据 > db-dump-in-json.json
./manage.py --format=xml > db-dump-in-xml.xml
如果数据过多或内存不足,这可能会导致崩溃。那么事情就是使用本机数据库工具来获取 dump.
在
settings.py
中创建并添加新数据库的设置:创建表并在新定义的数据库上设置它们(基于您的模型):
./manage.py makemigrations
./manage.py迁移
createdb
= syncdb
(创建)+ migrate
(设置)合并
并在那里重新加载导出的数据:
./manage.py loaddata db-dump-in-json.json