django sqlite 3 mysqlへの移行
5951 ワード
最も簡単なSQLite MySQL移行
これもほとんどの検索結果に現れ、似ているか似ている方法です.まずdumpしてからload
次にデータをload
しかし、著者が言ったように、残念なことに、これは仕事をしません.
SQLite3 MySQL Migrate
1.
修正後はおおむね次のようになります
思想的には主従同期である.
southを使用する場合は無効にします
2.データベースの作成
3.新しいデータベースにテーブルを作成する
**south``を許可し、もう一度繰り返します.
4.プロジェクトディレクトリに
5.同期
shellに入る
python shellで実行
6.
これもほとんどの検索結果に現れ、似ているか似ている方法です.まずdumpしてからload
python ./manage.py dumpdata > data.json
次にデータをload
python ./manage.py loaddata data.json
しかし、著者が言ったように、残念なことに、これは仕事をしません.
SQLite3 MySQL Migrate
1.
settings.py
を編集し、slave
データベースを追加し、 DATABASES = {'default': {...}, 'slave': {...}}
修正後はおおむね次のようになります
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": "dev.db",
"USER": "",
"PASSWORD": "",
"HOST": "",
"PORT": "",
},
"slave": {
"ENGINE": "django.db.backends.mysql",
"NAME": "phodal",
"USER": "root",
"PASSWORD": "",
"HOST": "",
"PORT": "",
},
}
思想的には主従同期である.
southを使用する場合は無効にします
2.データベースの作成
CREATE DATABASE phodal CHARACTER SET utf8 COLLATE utf8_general_ci;
3.新しいデータベースにテーブルを作成する
python ./manage.py syncdb --database slave
**south``を許可し、もう一度繰り返します.
python ./manage.py syncdb --database slave
4.プロジェクトディレクトリに
to_slave.py
を作成するfrom django.contrib.contenttypes.models import ContentType
def run():
def do(Table):
if Table is not None:
table_objects = Table.objects.all()
for i in table_objects:
i.save(using='slave')
ContentType.objects.using('slave').all().delete()
for i in ContentType.objects.all():
do(i.model_class())
signals
のタイプがある場合は、まず無効にする必要があります.5.同期
shellに入る
python ./manage.py shell
python shellで実行
from to_slave import run
run()
6.
slave
をデフォルトのデータベースに変更します.