1
職人を使用してSQLスクリプトを実行しているデータベースのレコードを更新したいとします。たとえば、次のようなコマンドを実行する必要があります。Laravel更新データベースレコード実行スクリプト
UPDATE translations SET field = 'meta_desc' WHERE field = 'page_desc'
Laravelの構造が最適な解決策は何ですか?種子、移動、工場?
職人を使用してSQLスクリプトを実行しているデータベースのレコードを更新したいとします。たとえば、次のようなコマンドを実行する必要があります。Laravel更新データベースレコード実行スクリプト
UPDATE translations SET field = 'meta_desc' WHERE field = 'page_desc'
Laravelの構造が最適な解決策は何ですか?種子、移動、工場?
皆様お返事ありがとうございます。 @RossWilsonに感謝して、DBのデータを変更するために移行を使用することを考えました。
Laravelのコンセプトには、DB構造の変更に移行を使用することが含まれるため、これは良い解決策ではないと思います。
Laravelのマニュアルを読んだところ、私はdbのデータを操作するための特別なコード構造があることを発見しました。それはSeedです。
php artisan make:seed UpdateTranslationsSeeder
はrun()メソッド内のコードを書く:職人のコマンドを使用して、新しい種を作成し
:だから、私は上記の私の例のクエリに対して次のシードを使用して、私の問題を解決し
DB::table('translations')->where('field', 'page_desc')->update(['field' => 'meta_desc']);
職人で私のシーダを実行します。
php artisan db:seed --class=UpdateTranslationsSeeder
注:
composer dump-autoload -o
使用中のコンソールコマンド:コンソールでの最後のコマンドを実行した後、私はクラスUpdateTranslationsSeederに関するエラーを持っている場合は、未定義の実行は、新しいクラスについてLaravelを伝えるために、コンソールで次のコマンドです。 docs https://laravel.com/docs/5.4/artisan#writing-commands –
を参照してください。私のDBの変更をプロダクションサーバのDBにデプロイするためにこのスクリプトを実行する必要があります。毎回新しいartisanコマンドを書くよう提案しますか?私はプロダクションで何かを変えたいですか?申し訳ありませんが、それは私のための悪い解決策です... –
その内容が動的で、異なるSQLクエリを実行するコマンドを作成したいと思いますか? –