データベース内のテーブルのすべての作成ステートメントを含む .sql ファイルがあります (つまり、CREATE TABLE X、CREATE INDEX Y、CREATE UNIQUE INDEX Z)。このコードを簡単に実行してテーブルを生成できるメイクファイルを作成することは可能ですか?
さらに、これを Xcode に接続して、アプリを実行したときにデータベースが作成されるようにすることは可能でしょうか?
アプリで実行時にファイルを実行するために使用sqlite3_execします。sqlもちろん、やりたいのは一度だけです。sqlite2_open_v2最初に新しいデータベース ファイルを開き、次にファイルを実行するために使用する必要がありsqlます。
ビルド中に Xcode でデータベース ファイルを生成する場合は、セットアップ後にこれを行うことができます。私は自分のプロジェクトの1つでこれを行います。
まず、Xcode でターゲットを選択し、[ビルド フェーズ] タブに移動します。次に、[ビルド フェーズの追加] ボタンをクリックし、[実行スクリプトの追加] を選択します。「Run Script」タイトルをダブルクリックし、「Generate db file」などの便利な名前に変更します。
「シェル」の値を「/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ファイルを更新します。