23
|
Pierre-Jean Coudert · 技术社区 · 14 年前 |
![]() |
1
35
以我的经验,从SQL中转储和还原无法正常工作。 您应该改为遵循以下顺序: 一。将数据库内容转储到json
2。在settings.py中切换后端
三。同步数据库并将新数据库迁移到同一表结构
四。将json加载到新的db。
5个。恭喜!现在新数据在postgres数据库中。 |
![]() |
2
17
以下是对 Nimo's answer 和 Stephen's answer 对于Django 1.7+:
我遇到的一个问题是SQLite似乎并没有强制执行最大长度。
有一次我在第一步之前做了这个。上面,一切正常。 |
![]() |
3
9
我从来没有做过,但我会尝试。
|
![]() |
4
4
另一种方法是使用多个数据库。 http://docs.djangoproject.com/en/dev/topics/db/multi-db/ 你读这一节很重要。 据我所知,这意味着如果您的新数据库中没有数据,例如您可以从fixture中
因为这应该保留主键,我认为不会有外键问题。 |
![]() |
5
3
根据@Nimo的回答,从
相反,请使用下面的命令:
Postgres设置配置如下:
|
![]() |
6
2
在这一点上,只要测试一下。在Django中编写一些测试脚本,为每个应用程序输出一组样本记录,然后执行diff以确保它们是相同的。如果他们是,那么你的转换可能是好的。 如果那不起作用。。。我建议不要使用Django来转储和加载数据,因为我猜这样做没有经过优化。 相反,我将使用正确的PostgreSQL数据库设置创建您的应用程序的第二个版本,运行syncdb创建所有表,然后使用其他工具将数据从mysqllite复制到PostgreSQL。
问题是,转换数据时的大多数问题都在表定义中,这些似乎是最特殊的。如果您可以生成一个只转储表内容的SQL脚本,那么它应该是非常标准的SQL
老实说,我不明白为什么会有外键问题。假设sqlite正在创建准确的外键(为什么不呢?)那就不可能复制不正确了。实际上,外键不是特殊形式的数据。不太可能
根据截断:据我所知,如果数据即将被截断,PostgreSQL会抛出一个硬错误。我不知道sqlite是这样的,还是它只是无声地截断。不管怎样,再次假设sqlite在导出时并没有以某种方式修改数据,那么字段应该包含的数据对于它要进入的字段来说是合适的长度。我唯一能想到的可能影响这一点的是字符编码,所以请确保PostgreSQL字段的编码与sqlite表的相同,至少在导入期间是这样。 |
|
7
1
对我有用的是在ruby上运行续集。 只需运行命令:
您需要在系统上安装postgres、sqlite和ruby的devel包 运行命令:
在postgresql上创建一个空数据库,比如testDB,并为用户分配一个grant权限 从命令提示符运行:
运行时不会出错。 更改django项目中的设置以使用postgres数据库 跑步
运行服务器 |
![]() |
baronsec · SQL遍历表以查找子字符串 2 年前 |
![]() |
Guillaume · 使用操作从Python列表创建numpy数组 2 年前 |
![]() |
EJ Travel · 如何使用Kotlin中的Room管理登录验证? 3 年前 |
![]() |
Ken · SQL计数或最大值(sqlite) 3 年前 |
![]() |
Eric · Python Crontab无法读取Sqlite3表 3 年前 |