概要
困っていたこと
Flutterで単語帳アプリを作っています。
データベースは、Driftというパッケージを使用していました。
(https://pub.dev/packages/drift)
あるカラムをユニークキーにしたくて、あとで追加で設定を加えたのですが、反映されませんでした。
データベースは、assetsフォルダにデータベースを入れて、それを読み込ませる方式をとっていました。
結論
CSVからDB Browser for SQLiteでデータベースにする際にも、unique設定をしないといけませんでした。
Qiitaで質問させていただいて、解決できました。
詳細
dartファイル
TextColumn get name => text().unique()();
カラムの定義にunique()()
を付けます。
flutter pub run build_runner build --delete-conflicting-outputs
上記をターミナルで実行して、自動生成ファイルを更新します。
データベースファイル
DB Browser for SQLiteで該当のデータベースファイルを開いて、テーブルの名前の上で右クリック→「テーブルを変更」を選択。
該当カラム(ここでは「name」)の「U」にチェックを入れます。
(スクショではPK(プライマリーキー)にもチェックが入っています。)
これで解決しました!!
あとがき
私は初心者すぎて、こんなふうにしないといけないとは、思いつきませんでした…
教えていただいて、ありがとうございました!!