0

データベース内のテーブルのすべての作成ステートメントを含む .sql ファイルがあります (つまり、CREATE TABLE X、CREATE INDEX Y、CREATE UNIQUE INDEX Z)。このコードを簡単に実行してテーブルを生成できるメイクファイルを作成することは可能ですか?

さらに、これを Xcode に接続して、アプリを実行したときにデータベースが作成されるようにすることは可能でしょうか?

4

1 に答える 1

3

アプリで実行時にファイルを実行するために使用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ファイルを更新します。

于 2013-06-19T01:51:03.097 に答える