問題タブ [laravel-migrations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Laravel 5でシーダーファイルをgitignoreする必要がありますか?
移行ファイルとシーダー ファイルを偽のデータでセットアップしましたが、うまく機能しています。作業をコミットしようとしていますが、シーダー ファイルをどうすればよいかよくわかりません。本番環境でシーダー ファイルを実行したくないので、無視することにしました。誤って偽のデータを本番環境に移行してシードしたくありません!
それでも、シーダーは実際のデータを使用して本番環境で使用できると考えています。他のテーブル列で何らかの計算を実行する必要がある新しい列を追加するとします (例のために、他のフィールドから計算できるフィールドはデータベースに存在しないことを無視します) 値を格納します。または新しい設定/フラグ。そのフィールドに既存の本番データを入力するシーダーを作成できると思います。だから今、シーダーディレクトリを無視することはできません.
すべてのケースで各ファイルを個別に無視することを決定する必要がありますか? dev
シーダーが環境でのみ実行されるべきであることをどこかで宣言できますか? ここでのコンベンションは何ですか?
postgresql - PostgreSQL を使用した Laravel の移行で enum 列を更新する
この回答によるとenum
、MySQL で更新する場合は、生のクエリを実行する必要があります。しかしPostgreSQLではこのクエリが使えず、LaravelでのPostgreSQLのenum型がおかしい。
postgreSQL の移行で enum を更新する方法はありますか?
laravel-5 - up() がテーブルをドロップする場合、down() 関数に何を入れますか?
Laravelを学び始めたばかりなので、簡単に始めてください。いくつかの移行ファイルを作成して試してみました。1 つ目はテーブルを作成し、2 つ目は列を追加し、3 つ目はテーブルを削除します。down()
テーブルを「ドロップ解除」できないため、3 番目の移行の関数に何を入れるべきか知りたいです。テーブルを削除する移行のロールバックをどのように処理しますか?
mysql - Laravel 5.1の移行とシードは、外部キー制約で参照されているテーブルを切り捨てることはできません
移行 (以下を参照) を実行してデータベースをシードしようとしていますが、実行すると
次のエラーが表示されます。
このエラーが何を意味するのかを調べたところ、MySQLの使用とその解決策に関連しているだけでも、同じ問題に遭遇している他の人々の例が見つかりましたが、適用されます:
down() 内では機能していないようで、MySQL で describe を実行すると、テーブルが正しく表示されます。
移行には適切な名前が付けられているため、最初に users テーブルが移行され、次に vehicle が移行されるため、外部キーを適用できます。正しく設定されているテーブルは、移行が実行されたことを示していますが、その後エラーが発生します。DBを削除して再作成し、再試行しましたが、同じ結果です。また、データベースの最初の移行とシードで切り詰めようとしている理由もわかりません。php artisan migrate:refresh --seed を実行しようとしたときに発生するとは思いもしませんでした。
sql - Laravel の移行を生の SQL スクリプトに変換する方法は?
私のチームの開発者は、Laravel の移行機能に慣れており、ローカル マシンと開発サーバーでうまく機能しています。しかし、顧客のデータベース管理者は Laravel の移行を受け入れません。彼は、アプリケーションの新しいバージョンごとに未加工の SQL スクリプトを要求します。
Laravel の移行からアップ/ダウン SQL スクリプトへの出力をキャプチャするツールまたはプログラミング手法はありますか?
本番ビルドを作成するときに、SQL スクリプト生成を CI システム (TeamCity) に統合できれば完璧です。
ちなみに、このプロジェクトでは Laravel 5 と PostgreSQL を使用します。
mysql - MySQL ビューを Postgres に変換する
実稼働の MySQL DB を Postgres に変換する必要性を受け継いでいます。これは、テーブル/関数の作成に単純な SQL ステートメントを使用して (Navicat を使用して半自動変換を生成する) 問題なく処理されましたが、やや複雑なビューの変換で問題が発生しています。
調査によると、これは 2 つの DB がサブクエリ (WHERE ステートメント) を処理する方法の違いが原因である可能性があり、おそらくそれは単なる構文の違いです。コードベースは別の開発者から継承されているため、ここでのビジネス ロジックは不明です。
以下を実行します (Laravel 移行 / PHP スクリプトを使用):
...エラーをトリガーします
Postgresがサブクエリを実行するように、これをフォーマットする方法を誰かが提案できますか?
ところで、ここで Laravel 移行スクリプトで使用される PHP コードは次のとおりです。
...
更新、修正済み:
素晴らしい。ここにすべてからの非常に良い入力があります。
@patrick と @ErwinBrandstetter のソリューションはどちらも機能します。ここでの私の役割は、システムを「現状のまま」変換することであるため、ここではパトリックを支持します。将来的にはリファクタリングの余地があるかもしれませんが、この段階では、他の誰かのダクトテープソリューションを台無しにする (または改善する) のは危険だと感じています (つまり、コードベースは、ドキュメントの兆候がなく、場所によっては過度に複雑に見えます。ビジネス ロジックに関する背景情報がなければ、いろいろ調べたり、コアの改善を試みたりすることに消極的です)。いずれにせよ、モデルの一部をオーバーホールする必要があるのではないかと思うので、[原文のまま]-ここでは修正を優先します。
いくつかのクリック操作が元のクエリを生成した可能性があると思いました...元の開発者に疑いの利益を与えようとし、迅速な(つまり、面倒な)ターンアラウンドを必要とするビジネス上の圧力があったと想定しました。複雑な SQL は私の得意分野ではありませんが、私の直感が正しかったことをうれしく思います。クエリはそもそも不要で複雑です。おそらく、ビューは計画外のボルトオンでした-そもそも設計されていません. 賢明であろうとなかろうと、私はおそらく ORM ベースのアプローチで問題を解決しようとしたでしょう。
私は土壇場でこのプロジェクトに参加し、再起動のためにクリーンアップを実行しています (元の開発者は「手放しました」)。いわば空挺部隊を実行しています。ありがたいことに、このビューの問題はパズルの最後のピースに現れます。ありがとうございました :-)
php - Laravel - 移行ファイル名/クラスを変更、migrate:reset は引き続き古いクラスを検索
移行ファイル名を変更し、クラス名を更新し、「composer dump-autoload」を実行してから、「php artisan migrate:reset」を実行しました。
それを実行すると、エラーが発生します。
[Symfony\Component\Debug\Exception\FatalErrorException] クラス 'OldClassName' が見つかりません
プロジェクト全体でこのクラス名を検索すると、エラー ログに記載されていることがわかります。「autoload_classmap.php」に移動すると、クラス名と移行ファイル名の行は正しいです (確認のためにコピーして貼り付けました)。
グーグルで調べている間、人々は私がすでに持っている他のいくつかのコマンドを実行することを提案しました:
他にどのようにトラブルシューティングすればよいですか?
php - Laravel 4.2とmigrate makeが機能しない
Getting Started with Laravel 4という本に基づいてプロジェクトを作成します。
そこで、app/models/ に 2 つのファイル (Cat.php と Breed.php) を次の内容で作成します。
Cat.php
および Breed.php
その後、コマンドを使用しますphp artisan migration:make create_cats_and_breeds_table
OK、app/database/migrationsにファイルが作成されるはずです。です。
しかし、その内容は本と同じではありません...
本で:
私のコード:
どうしたの?
laravel - Laravel5のホストチームとゲストチームとの試合のピボットテーブル
アプリで 2 つのチームと対戦したいです。現在、単純な hasMany/belongsToMany 関係でこれを実装しています。
テーブル: チーム、マッチ、match_team (match_id、team_id)
チームモデル
マッチモデル
もちろん、ピボット テーブルの match_team には、試合ごとに 2 つの行があります。
Blade テンプレート エンジンを使用すると、ホーム チームに次のようにリクエストできます。
しかし、私はより具体的にしたいので、次のようなテーブルが必要です:
しかし、それらの関係を設定する方法がよくわかりません...
それについて何か考え/アイデアはありますか?=)