我有一个.sql文件,其中包含我数据库中表的所有create语句(即CREATE TABLE X,CREATE INDEX Y,CREATE UNIQUE INDEX Z)。是否可以编写一个可以轻松运行此代码并生成表的makefile?
此外,是否可以将其连接到Xcode,以便在运行我的应用程序时创建数据库?
答案 0 :(得分:3)
使用sqlite3_exec
在您的应用中运行时运行sql
文件。当然你只想做一次。您需要先使用sqlite2_open_v2
打开一个新的数据库文件,然后执行sql
文件。
如果要在构建期间在Xcode中生成数据库文件,可以在进行一些设置后执行此操作。我在我的一个项目中这样做。
首先在Xcode中选择目标并转到“Build Phases”选项卡。然后单击“添加构建阶段”按钮并选择“添加运行脚本”。双击“运行脚本”标题并将其重命名为有用的内容,例如“生成数据库文件”。
将“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
文件最终在您的资源中。
只要db
文件更新,脚本就会更新sql
文件。