Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python将SQLite3数据库表迁移到MySQL,而不使用转储文件_Python_Mysql_Django_Sqlite - Fatal编程技术网

使用Python将SQLite3数据库表迁移到MySQL,而不使用转储文件

使用Python将SQLite3数据库表迁移到MySQL,而不使用转储文件,python,mysql,django,sqlite,Python,Mysql,Django,Sqlite,我需要将我在SQLite3中创建的信息迁移到我网站上的MySQL数据库中。该网站位于托管服务器上。我可以远程访问MySQL数据库。我最初认为这很容易,但我没有找到任何关于它的好信息,我读到的所有内容似乎都暗示您需要转储SQLite3文件,使用凌乱的脚本将其转换为MySQL转储文件,然后将其导入MySQL 例如: 我的问题是:阅读并直接从脚本导入MySQL不是更好吗。我根本没有在Python中使用MySQL,但从直觉上看,最好少读一些东西。我还试图通过不必了解MySQL转储文件的工作方式来节省一点

我需要将我在SQLite3中创建的信息迁移到我网站上的MySQL数据库中。该网站位于托管服务器上。我可以远程访问MySQL数据库。我最初认为这很容易,但我没有找到任何关于它的好信息,我读到的所有内容似乎都暗示您需要转储SQLite3文件,使用凌乱的脚本将其转换为MySQL转储文件,然后将其导入MySQL

例如:

我的问题是:阅读并直接从脚本导入MySQL不是更好吗。我根本没有在Python中使用MySQL,但从直觉上看,最好少读一些东西。我还试图通过不必了解MySQL转储文件的工作方式来节省一点时间

如果你有一个Python脚本,如果可能的话,工具或链接将帮助我,这将是伟大的,但我首先关心的是如何去做它。我不能现实地检查所有的东西,否则我只会进行复制和粘贴,所以我想确保我的方法是正确的


我正在使用Django,也许有Django特有的方法,但我还没有找到。之所以需要这些凌乱的脚本,是因为它通常是一个很难解决的问题

如果幸运的话,数据库之间不会有太多的模式不兼容

这些可能会有帮助


之所以需要凌乱的脚本,是因为它通常是一个很难解决的问题

如果幸运的话,数据库之间不会有太多的模式不兼容

这些可能会有帮助


您是否尝试过使用django admin的dumpdata和loaddata

e、 g.转储sqllite3db

manage.py dumpdata
将数据库更改为mysql,重新创建表并加载

manage.py loaddata mydata.json
dumpdata默认转储json,但也可以将格式设置为xml


或者,您可以使用python db api或sqlalchemy或django ORM读取整个sqlite3 db,然后将其转储到MySQL db。

您尝试过使用django admin的dumpdata和loaddata吗

e、 g.转储sqllite3db

manage.py dumpdata
将数据库更改为mysql,重新创建表并加载

manage.py loaddata mydata.json
dumpdata默认转储json,但也可以将格式设置为xml


或者,您可以使用python db api或sqlalchemy或django ORM读取整个sqlite3数据库,然后将其转储到MySQL数据库。

我忽略了转储数据以json格式输出的事实。这当然让事情变得容易多了。我试图避免将每个表作为文件加载,我不想上载整个数据库,只想上载某些文件我仍然不确定为什么不编写一个脚本来读取sqlite3数据库并将其上载到mysql。由于sqlite3数据库在我的计算机上,而mysql则在托管服务器上,如果我能一次完成这一切,那就容易多了。如果没有,我将使用您建议的方法逐个处理这些表。@vermon,是的,您可以编写一个脚本,如果这很容易,并且您只有一些数据要加载。我忽略了dumpdata将其作为json格式输出的事实。这当然让事情变得容易多了。我试图避免将每个表作为文件加载,我不想上载整个数据库,只想上载某些文件我仍然不确定为什么不编写一个脚本来读取sqlite3数据库并将其上载到mysql。由于sqlite3数据库在我的计算机上,而mysql则在托管服务器上,如果我能一次完成这一切,那就容易多了。如果没有,我会用你建议的方法一个接一个地处理表格。@vermon,是的,你可以编写一个脚本,如果这很容易,而且你只有一些数据要加载。之所以需要这些凌乱的脚本,是因为它通常是一个很难解决的问题。。。。这就是为什么我想完全跳过这个。如果我打开sqlite3,遍历表并逐行更新mysql表,这看起来并不混乱,但似乎没有人这样做。我的问题是为什么?@Vernon,做你最容易做的事。许多人似乎通过数据库转储进行迁移。你可能会找到比以前任何人都好的方法。如果不成功,您可以返回并尝试转储:@Vernon:可能是因为您需要确保模式匹配。使用松散类型的数据并将其插入到更强类型的模式中可能会产生一些问题,并且每个应用程序可能有不同的策略来处理它们。我正在让它为我的目的工作,但是我已经看到了模式匹配的问题。我想我只是觉得如果有一个已经编写好的模块来处理它,那将非常像Python。之所以需要混乱的脚本,是因为它通常是一个很难解决的问题。。。。这就是为什么我想完全跳过这个。如果我打开sqlite3,遍历表并逐行更新mysql表,这看起来并不混乱,但似乎没有人这样做。我的问题是
“这是为什么?”弗农,做你最容易做的事。许多人似乎通过数据库转储进行迁移。你可能会找到比以前任何人都好的方法。如果不成功,您可以返回并尝试转储:@Vernon:可能是因为您需要确保模式匹配。使用松散类型的数据并将其插入到更强类型的模式中可能会产生一些问题,并且每个应用程序可能有不同的策略来处理它们。我正在让它为我的目的工作,但是我已经看到了模式匹配的问题。我想我只是觉得如果有一个已经编写好的模块来处理它,那将非常像Python。