データベース内のテーブルのすべての作成ステートメントを含む .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
ファイルを更新します。