以上就是给各位分享将DjangoDB从SQLite迁移到MySQL的最佳方法是什么?,其中也会对django导入mysql进行解释,同时本文还将给你拓展django1.9.5sqlite3迁移数据到m
以上就是给各位分享将Django DB从SQLite迁移到MySQL的最佳方法是什么?,其中也会对django导入mysql进行解释,同时本文还将给你拓展django1.9.5 sqlite3迁移数据到mysql(外键迁移没有问题)、django中sqlite迁移mysql、Django:将项目从sqlite迁移到PostgreSQL的最佳实践是什么、Mysql应用sqlite迁移到mysql脚本的方法等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- 将Django DB从SQLite迁移到MySQL的最佳方法是什么?(django导入mysql)
- django1.9.5 sqlite3迁移数据到mysql(外键迁移没有问题)
- django中sqlite迁移mysql
- Django:将项目从sqlite迁移到PostgreSQL的最佳实践是什么
- Mysql应用sqlite迁移到mysql脚本的方法
将Django DB从SQLite迁移到MySQL的最佳方法是什么?(django导入mysql)
我需要将数据库从sqlite迁移到mysql,并且各种工具/脚本对我来说太多了,无法轻松找到最安全,最优雅的解决方案。
在我看来,这看起来不错http://djangosnippets.org/snippets/14/,但距获取更新令人担忧,似乎已经过去了三年。
您是否可以推荐一个在Django 1.1.1上可靠的解决方案?
答案1
小编典典执行:
python manage.py dumpdata > datadump.json
接下来,将你的settings.py更改为mysql数据库。
最后:
python manage.py loaddata datadump.json
django1.9.5 sqlite3迁移数据到mysql(外键迁移没有问题)
# 创建mysql数据库
CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci;
# 切换default 数据库到sqlite3
# 导出salite3中的数据到sqlite3_all.json
python3 manage.py dumpdata > sqlite3_all.json
# 切换 django settings 中默认数据库到 mysql
# 删除django 所有app原来基于sqlite3创建的migrations,并执行下面操作
python3 manage.py makemigrations
python3 manage.py migrate
# 执行下面的命令将数据导入到mysql数据库中去
python3 manage.py loaddata sqlite3_all.json
django中sqlite迁移mysql
sqlite数据迁移
1 数据备份
django中打开terminal
python manage.py dumpdata authorization > authorization_data.json
2 表结构同步
django中创建mysql数据库并更新配置settings
创建slave数据库
迁移数据库表
python manage.py migrate --run-syncdb --database slave #syncdb 同步数据库
DATABASES = {
''default'': {
''ENGINE'': ''django.db.backends.sqlite3'',
''NAME'': os.path.join(BASE_DIR, ''db.sqlite3''),
},
''slave'': { #slave备用数据库
''ENGINE'': ''django.db.backends.mysql'',
''NAME'': ''backend'',
''USER'': ''root'',
''PASSWORD'': ''Jarvis.123456'',
''HOST'': ''localhost'',
''PORT'': ''3306''
}
}
导入数据:python manage.py loaddata authorization_data.json
#init中添加导入
import pymysql
pymysql.install_as_MySQLdb()
#先建数据库,setting中配置
DATABASES = {
''slave'': {
''ENGINE'': ''django.db.backends.mysql'',
''NAME'': ''xxx'',
''USER'': ''root'',
''PASSWORD'': ''123'',
''HOST'': ''127.0.0.1'',
''PORT'': 3306
}
}
3 数据迁移
setting中配置设置只默认mysql,去掉slave
python manage.py loaddata authorization_data.json
diango-模型变更makemigration,migrate
model--用户层面
makemigration--django层面
migrate--db层面
Django:将项目从sqlite迁移到PostgreSQL的最佳实践是什么
我需要将一个复杂的项目从sqlite迁移到PostgreSQL。很多人似乎对外键,数据截断等存在问题。
- 有全自动的工具吗?
- 迁移之前是否需要检查一些数据或架构?
答案1
小编典典我的经验,从SQL转储和还原无法正常工作。
你应该遵循以下顺序:
1.将数据库内容转储到json
$ ./manage.py dumpdata > dump.json
2.在settings.py中切换后端
DATABASES = { # COMMENT OUT: # ''default'': dj_database_url.config(default=''sqlite:////full/path/to/your/database/file.sqlite''), # ADD THIS INSTEAD: ''default'': dj_database_url.config(default=''postgres://localhost:5432/postgres_db_name''),}
- Syncdb并将新数据库迁移到相同的表结构
$ ./manage.py syncdb$ ./manage.py migrate
4.将json加载到新数据库。
$ ./manage.py loaddata dump.json
5.恭喜!现在,新数据在你的postgres数据库中。
Mysql应用sqlite迁移到mysql脚本的方法
《MysqL应用sqlite迁移到MysqL脚本的方法》要点:
本文介绍了MysqL应用sqlite迁移到MysqL脚本的方法,希望对您有用。如果有疑问,可以联系我们。
废话不多说了,直接给大家贴代码了,具体代码如下所示:MysqL教程
#! /usr/bin/perl # # based on https://stackoverflow.com/a/87531/5742651 # usage: sqlite3 .dump database_name.sqlite3 | perl sqlite2MysqL.pl | MysqL -u root -p $import_database_name # # ignore follow lines: # BEGIN TRANSACTION # COMMIT # sqlite_sequence # CREATE UNIQUE INDEX # PRAGMA foreign_keys=OFF # "tablename/field" => `tablename/field` # booleans 't' and 'f' => 1 and 0 # AUTOINCREMENT => AUTO_INCREMENT # varchar => varchar(255) # CREATE TABLE table... => DROP TABLE table; CREATE TABLE table... # Merge insert sqls into multiple insert to speed up # INSERT INTO table VALUES('val1'); # INSERT INTO table VALUES('val2'); => INSERT INTO table VALUES('val1'),('val2'),('val3'); # INSERT INTO table VALUES('val3'); my $open=0; my $line_cache = ''; # For speed up print "SET GLOBAL max_allowed_packet=209715200;\n"; #print "SET AUTOCOMMIT=0;\n"; while ($line = <>){ if (($line !~ /PRAGMA foreign_keys=OFF/) && ($line !~ /BEGIN TRANSACTION/) && ($line !~ /COMMIT/) && ($line !~ /sqlite_sequence/) && ($line !~ /CREATE UNIQUE INDEX/)){ if ($line =~ /CREATE TABLE \"([a-z_0-9]*)\"(.*)/){ $name = "\`$1\`"; $sub = $2; $sub =~ s/varchar([^(])/varchar(255)$1/g; $line = "DROP TABLE IF EXISTS $name;\nCREATE TABLE $name$sub\n"; } elsif ($line =~ /CREATE VIEW ([a-z_0-9]*)(.*)/){ $name = "\`$1\`"; $sub = $2; $line = "DROP VIEW IF EXISTS $name;\nCREATE VIEW $name$sub\n"; } elsif ($line =~ /INSERT INTO \"([a-z_]*)\" VALUES(.*);/){ if ($open == 0) { $open = 1; $line_cache .= "INSERT INTO \`$1\` VALUES $2"; } else { $line_cache .= ",$2"; } next; }else{ $line =~ s/\'\'/\\\'/g; } if ($open == 1) { $open = 0; $line = $line_cache.";\n".$line; $line_cache = ''; } $line =~ s/\"/`/g; $line =~ s/([^\\'])\'t\'(.)/$1THIS_IS_TRUE$2/g; $line =~ s/THIS_IS_TRUE/1/g; $line =~ s/([^\\'])\'f\'(.)/$1THIS_IS_FALSE$2/g; $line =~ s/THIS_IS_FALSE/0/g; $line =~ s/AUTOINCREMENT/AUTO_INCREMENT/g; print $line; } } #print "SET AUTOCOMMIT=1;\n";
总结MysqL教程
以上所述是小编给大家介绍的sqlite迁移到MysqL脚本的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对小编PHP网站的支持!MysqL教程
今天关于将Django DB从SQLite迁移到MySQL的最佳方法是什么?和django导入mysql的介绍到此结束,谢谢您的阅读,有关django1.9.5 sqlite3迁移数据到mysql(外键迁移没有问题)、django中sqlite迁移mysql、Django:将项目从sqlite迁移到PostgreSQL的最佳实践是什么、Mysql应用sqlite迁移到mysql脚本的方法等更多相关知识的信息可以在本站进行查询。
本文标签: