luq*_*qui 11 database sqlite postgresql
我们正在开发一个网站,当我们在本地开发时(我们中的一个来自Windows),我们使用sqlite3,但在服务器(linux)上我们使用postgres.我们希望能够将生产数据库导入到我们的开发过程中,所以我想知道是否有一种方法可以将postgres数据库转换转换为sqlite3可以理解的东西(只是将它添加到postgres的转储SQL中给了很多,许多错误).或者只是在Windows上安装postgres会更容易吗?谢谢.
tut*_*uju 14
我发现此博客条目指导您执行以下步骤:
创建PostgreSQL数据库的转储.
ssh -C username@hostname.com pg_dump --data-only --inserts YOUR_DB_NAME > dump.sql
Run Code Online (Sandbox Code Playgroud)删除/修改转储.
SETSELECT pg_catalog.setvalt'的真实f' 替换为false添加BEGIN;为第一行和END;最后一行
重新创建一个空的开发数据库. bundle exec rake db:migrate
导入转储.
sqlite3 db/development.sqlite3
sqlite> delete from schema_migrations;
sqlite> .read dump.sql
Run Code Online (Sandbox Code Playgroud)当然,通过ssh连接并使用rake创建一个新的db是可选的
STEP1:转储您的数据库结构和数据
pg_dump --create --inserts -f myPgDump.sql \
-d myDatabaseName -U myUserName -W myPassword
Run Code Online (Sandbox Code Playgroud)
STEP2:从 myPgDump.sql 中删除除 CREATE TABLES 和 INSERT 语句之外的所有内容(使用文本编辑器)
STEP3:初始化您的 SQLite 数据库,传递 Postgres 转储的结构和数据
sqlite3 myNewSQLiteDB.db -init myPgDump.sql
Run Code Online (Sandbox Code Playgroud)
第 4 步:使用您的数据库 ;)
摘自/sf/answers/2206500271/(在那里投票):sequel宝石使这成为一个非常轻松的过程:
首先安装 Ruby,然后通过运行安装 gem gem install sequel。
如果是 sqlite,它会是这样的:sequel -C postgres://user@localhost/db sqlite://db/production.sqlite3
感谢@lulalala。
有一些转换器工具:
http://sqlite.com/cvstrac/wiki?p=ConverterTools
在Windows上安装postgres会更容易吗?
可能,这样做非常简单.
您可以使用pg2sqlite将 pg_dump 输出转换为 sqlite。
# Making dump
pg_dump -h host -U user -f database.dump database
# Making sqlite database
pg2sqlite -d database.dump -o sqlite.db
Run Code Online (Sandbox Code Playgroud)
pg2sqlite 不支持模式,如果转储包含模式,则需要将其删除。您可以使用这个脚本:
# sed 's/<schema name>\.//' -i database.dump
sed 's/public\.//' -i database.dump
pg2sqlite -d database.dump -o sqlite.db
Run Code Online (Sandbox Code Playgroud)
尽管这里有很多非常有用的答案,但我只想将其标记为已回答。我们最终采纳了评论的建议:
\n\n\n我只是将你的开发环境切换到 PostgreSQL,在一个数据库(尤其是像 SQLite 这样宽松和宽容的数据库)之上进行开发,但在另一个数据库(尤其是像 PostgreSQL 这样严格的数据库)上部署通常会导致恼怒和咒骂。\xe2\x80\x93\n@mu 太短
\n
\n\n为了回应 mu 的回应,不要这样做……不要这样做……不要这样做。开发和部署在同一件事上。否则的话,这是不好的工程实践。\xe2\x80\x93 @Kuberchaun
\n
所以我们只是在我们的开发机器上安装了 postgres。上手很容易,工作也很顺利。
\n| 归档时间: |
|
| 查看次数: |
26304 次 |
| 最近记录: |