【问题标题】:Use make file to generate database from .sql file使用 make 文件从 .sql 文件生成数据库
【发布时间】:2013-06-19 01:15:39
【问题描述】:

我有一个 .sql 文件,其中包含数据库中表的所有创建语句(即 CREATE TABLE X、CREATE INDEX Y、CREATE UNIQUE INDEX Z)。是否可以编写一个可以轻松运行此代码并生成表格的makefile?

另外,是否可以将它连接到 Xcode,以便在我运行我的应用程序时创建数据库?

【问题讨论】:

  • 你想要哪个?您想要在构建期间创建数据库文件还是想要在您的应用程序中创建数据库文件?你应该只做一个或另一个,而不是两个。
  • 最终我希望它通过 xcode 运行,但我想知道如果两者都可能的话,如何做到这一点。

标签: ios sql xcode sqlite


【解决方案1】:

使用sqlite3_exec 在应用运行时运行sql 文件。当然你只想做一次。您需要先使用sqlite2_open_v2打开一个新的数据库文件,然后执行sql文件。

如果您想在构建期间在 Xcode 中生成数据库文件,您可以在一些设置之后执行此操作。我在我的一个项目中这样做。

首先在 Xcode 中选择您的目标,然后转到“构建阶段”选项卡。然后单击“添加构建阶段”按钮并选择“添加运行脚本”。双击“运行脚本”标题并将其重命名为有用的名称,例如“生成 db 文件”。

将“shell”值更改为“/bin/bash”。

在脚本中使用以下内容:

cd database
if [ create.sql -nt data.db ]; then
   rm -rf empty.db
fi

if [ ! -e data.db ]; then
   sqlite3 data.db < create.sql
fi
cd -

您可能需要更改此脚本的一些细节。鉴于脚本将从项目的根目录运行,更改第一行 (cd database) 以反映 sql 文件在您自己的项目中的位置。然后更改对create.sql 的任何引用以匹配您自己的sql 文件的名称。最后,更改对 data.db 的所有引用以匹配您希望数据库文件命名的内容。

最后一步是将此构建阶段移至“复制捆绑资源”阶段之前。还要确保 db 文件最终出现在您的资源中。

每当sql 文件更新时,该脚本都会更新db 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多