2017-01-31 1 views
12

ローカルのxamppにこのテーブルがあります。テーブル名はtagsです。これはローカルシステムでは問題なく動作しますが、以下の通り、私はテーブルの下にpeckinga_blog持っサーバーで私のアプリケーションが小文字の代わりに大文字のテーブル名を探しています

enter image description here

テーブル:次のエラーを取得する

enter image description here

することができますように

<?php 

use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateTagsTable extends Migration 
{ 
    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('Tags', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->mediumText('tag'); 
     }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::drop('Tags'); 
    } 
} 

は今、なぜ私はこの私のデータベースは明らかに利用可能であることにもかかわらず、このエラーが取得しています: tags参照私はlaravelアプリケーションで次のような移行を持っている tagsテーブルに対しても、その一つですか?サーバーが Tagsの代わりに tagsというデータベースを探すようにするにはどうすればよいですか?

+2

コード内の「タグ」のすべてのインスタンスを「タグ」に変更します – nogad

+1

タグからタグに変更しますか? DB内のタブ名をタグからタグに変更しますか? – Kaylined

+0

phpmyadminで 'tags'の名前を' Tags'に変更すると、 'tags'が既に存在するというエラーが出ます。 –

答えて

8

私は自分のコードに次の行を持っていた:

$tags = DB::table('Tags')->get(); 

は私の窓XAMPP上でローカルに完璧に働いたが、それを変更するために必要な:私のサーバー上で動作するように

$tags = DB::table('tags')->get(); 

+4

Windowsファイルシステムでは大文字と小文字を区別しません.Linuxファイルシステムは大文字と小文字を区別しません。私はあなたがいくつかのWindowsDevをやっていると推測しているので、パスカルケースに慣れていますか? –

+0

@RichardVanbergenはい:) :) –

+2

私はこの賞金を払う前に、賞金が払い戻される前にあなたは自己答弁をするつもりだったので、次回はあなたの賞金を払う際に少し注意してください。 –

5

大文字と小文字の区別は、使用しているファイルシステムによって異なります。これは、ローカルマシンと本番マシンの間の不一致を説明しています。

これは一般的な問題であるため、大文字小文字を使用することをお勧めします。移行中のTagstagsに変更し、またmodelに変更してください。

テーブルの名前を変更する必要がある場合は、最初にsomething_elseに変更し、再度tagsに変更します。

11

データベースおよびテーブル名はWindowsでは大文字と小文字が区別されず、大部分のUnixまたはLinuxでは大文字と小文字が区別されます。 MySQLのテーブル名はファイルシステムのエントリなので、基本となるファイルシステムが大文字と小文字を区別しません。移行を適用した後、それが動作するはずですが、しかし、場合には、それが動作していない、あなたは両方の文が成功するために、テーブルに下ケースと上ケース名をすなわちしたい場合

は、次の行を配置する必要があり

lower_case_table_names = 1

/etc/my.cnfにある

など、MySQLの設定を保存している場所であればどこでもかまいません。

Doctrine生成の資本/ CamelCaseテーブル名とMySQLは、それらを小文字で保存しました!

それとも

  1. 輸出する前にローカルのデータベースには、次の手順を行うことができます:[ドライブ]私の\ \ xamppの\ mysqlの\ binに:

  2. は、MySQLの設定ファイルを開きます。MySQLサーバは[mysqldを]

  3. はそれ以下のこの権利を追加#:はlower_case_table_names = 2

  4. は、ファイルを保存し、MySQLサービス

を再起動INI

  • はのためのルックアップ設定ファイルの[mysqld]セクションにシステム変数を必ず追加してください。

    詳細については、MySQL Reference Linkを参照してください。

  • 関連する問題