【问题标题】:Importing a SQLite3 dump back into the database将 SQLite3 转储导入数据库
【发布时间】:2010-09-23 15:00:32
【问题描述】:

我觉得这是一个愚蠢的问题,因为它似乎是常识。 . .但是我可以放在一起的谷歌搜索似乎无法给我答案!

我知道如何使用 .dump 命令从 sqlite3 数据库中获取数据。但是现在我有了这个名为 export.sqlite3.sql 的 ASCII 文件。 . .我似乎无法将它恢复到我想要的数据库中。

我的目标是将我在一个 rails 应用程序中的数据传输到另一个应用程序,这样我就不必再花各种时间创建虚拟数据了。 . .所以我从我的第一个应用程序中转储了数据,摆脱了所有 CREATE TABLE 语句,并确保我的第二个应用程序上的模式匹配。 . .现在我只需要把它放进去。

有人愿意帮助我吗?当你找到方法时,你能告诉我你在谷歌上插入了什么,因为我现在正用勺子敲打我的头,因为我认为这很容易找到。

【问题讨论】:

    标签: sql database sqlite import


    【解决方案1】:
    cat dumpfile.sql | sqlite3 my_database.sqlite
    

    This is modified from the sqlite3 getting started guide.

    【讨论】:

    • 优秀的答案。冒着听起来像破唱片的风险,这是对 cat 的无用使用。重定向就是答案: sqlite3 my_database.sqlite
    • 我同意,我通常也用
    • 我建议在前面加上“PRAGMA journal_mode = OFF; PRAGMA synchronous = OFF;”在运行此之前转储文件。这使得恢复速度更快。显然,在实际使用恢复的数据库时,这些设置不应关闭。
    • 60 MB,220'000 行,在 10 秒内,前置“PRAGMA journal_mode = OFF; PRAGMA synchronous = OFF;”谢谢@Brian
    【解决方案2】:

    你没有指定你的操作系统,而

    sqlite3 my_database.sqlite < export.sqlite3.sql
    

    适用于 unix 风格,不适用于 windows。

    .dump 命令的反面是 .read 命令。语法是

    sqlite3> .read export.sqlite3.sql
    

    【讨论】:

    • unix flavor 命令不起作用.. 你用这个恢复了吗?
    • 是的,但要注意 sqlite3> 不是 unix 命令,它是 sqlite3 提示符
    • 我得到了没有导出声明的解决方案,它恢复了..谢谢
    • echo .dump | sqlite3 sourcedb.sqlite | sqlite3 targetdb.sqlite 似乎适用于 Windows...
    • 为什么需要导入数据库的转储?我不能只使用 database.db 文件开头吗?
    【解决方案3】:

    这也应该有效:

    echo '.read export.sqlite3.sql' | sqlite3 my_database.sqlite3
    

    与“sqlite3 my_database.sqlite3 &lt; export.sqlite3.sql”相比,一个可能的优势是 SQLite 的 .read 命令可能(现在或将来)比“读取所有文本并执行它”更先进。它可能会进行批处理,这将减少大型转储的内存使用量。不过,我承认这是一个非常模糊且不太可能的优势。 .read 很可能只是从输入中读取每一行并执行它,就像重定向和管道运算符一样。

    【讨论】:

    • 错误:无法使用此命令打开“export./home/ubuntu/trydatabase/newsql.sql”
    【解决方案4】:

    将此用于 unix 风格。

    按 Ctrl+alt+T 并写入

    sqlite3 /home/ubuntu/output.sqlite < /home/ubuntu/input.sql
    

    它从输入文件中恢复您的数据库。

    【讨论】:

    • 'Ctrl+alt+T' 对所有 Unix 风格有什么作用?
    • 打开终端。
    猜你喜欢
    • 2020-03-13
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    相关资源
    最近更新 更多