在sqlite数据库之间传输数据
我正在开发一个在windows上使用sqlite的Django应用程序。这个数据库在Linux机器上工作吗?如果不是,我如何复制在Linux上的新数据库的数据(创建脚本是一种方式)?在sqlite数据库之间传输数据
SQLite兼容Windows和Linux平台。
The database file format is cross-platform - you can freely copy a database between 32-bit and 64-bit systems or between big-endian and little-endian architectures. These features make SQLite a popular choice as an Application File Format.
正如罗伯特写道,SQLite的文件应该在任何平台上运行。如果您决定切换到MySQL或PostgreSQL可以运行下面的(标准)命令来保存在Windows计算机上的数据库:
manage.py dumpdata <app1> <app1> > mydbdump.json
,然后配置Linux机器上的settings.py为MySQL或PostgreSQL数据库和运行:
manage.py syncdb
manage.py loaddata ./mydbdump.json
我已经成功地做了几次这样从MySQL切换到SQLite它工作正常。
仅供参考,您可以省略dumpdata命令中的列表以转储所有已安装应用程序的数据,但不可能将其加载回来。全包转储将包含一些内部Django记录,例如default内容类型和用户认证,这些也是由syncdb命令创建的。所以你得到的错误如
IntegrityError: columns app_label, model are not unique
列出你想要转储和加载的特定应用程序,它会工作。
转储所有django模型并尝试加载时,“IntegrityError:columns app_label,model is not unique”错误会显示出来。你可以使用“python manage.py dumpdata auth.User myapp1 myapp2”来代替(只从django转储用户模型)。 – xhh 2011-03-06 14:05:01