라라벨의 Mysql InnoDB 엔진
저는 대규모 및 대규모 이동 메커니즘을 사용하고 있습니다.저는 테이블을 만들고 외부 키를 설정했습니다.그러나 테이블이 MyISSAM이므로 외부 키가 생성되지 않습니다.이 기능을 활성화/구성하는 위치는 어디입니까?(mysql 서버가 아닌 InnoDB로 변경).
/config/데이터베이스를 편집할 수 있습니다.php 파일, mysql 항목 검색 및 변경:
'engine' => null,
로.
'engine' => 'InnoDB',
이렇게 하면 추가 작업을 줄일 수 있습니다.$table->engine = "InnoDB";
각 스키마에 대해 ;)
엔진을 다음과 같이 정의합니다.
Schema::create("models", function(Blueprint $table) {
$table->engine = "InnoDB";
}
Schema\Table closure 내에서 엔진을 설정할 수 있습니다.
데이터베이스를 사용하지 않는 다른 접근 방식.php)를 포함합니다..env
파일:
DB_ENGINE=InnoDB
당신이 가지고 있는지 확인하는 것을 기억하세요.'engine' => env('DB_ENGINE', null),
데이터베이스에 있습니다.
나는 @토마스를 찾았습니다.로랑이 가장 좋은 해결책이지만 제 데이터베이스에 있는 기존 테이블은 어떻습니까?
일을 하고 있습니다.
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class ConvertTablesIntoInnoDB extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$tables = [
'users',
'products',
];
foreach ($tables as $table) {
DB::statement('ALTER TABLE ' . $table . ' ENGINE = InnoDB');
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$tables = [
'users',
'products',
];
foreach ($tables as $table) {
DB::statement('ALTER TABLE ' . $table . ' ENGINE = MyISAM');
}
}
}
이렇게 하면 필요할 때 모든 테이블을 변환하고 롤백할 수 있습니다.
Mysql을 5.5 이상으로 업데이트하는 것을 추천합니다.현재 Mysql의 기본 스토리지 엔진은 InoDB입니다.
MySQL 5.5.5 이전 버전에서는 MyISAM이 기본 스토리지 엔진입니다.MySQL 5.5.5에서는 기본값이 InnoDB로 변경되었습니다. MyISAM은 이전(더 이상 사용할 수 없는) ISAM 스토리지 엔진을 기반으로 하지만 많은 유용한 확장 기능을 갖추고 있습니다.
http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html
완료되면 Laravel을 통해 엔티티 클래스 내의 관계를 쉽게 매핑할 수 있습니다.
서버 측에서 InnoDb 테이블을 사용하는 것이 성공을 위한 최선의 방법입니다.MySQL 워크벤치를 사용합니다.Workbench에서 쉽게 사용할 수 있습니다.기본 설명서를 읽으려면
Schema::create('users', function($table)
{
$table->engine = 'InnoDB';
$table->string('email');
});
라라벨 문서처럼: https://laravel.com/docs/4.2/schema#storage-engines
P/s: 링크를 제공하라고 상기시켜준 @Nico Haase에게 감사드립니다.
데이터베이스를 사용하지 않는 사용자에게 가장 적합한 방법입니다.php)는 .env 파일인 DB_ENGINE=InnoDB에 포함됩니다.데이터베이스에 'engine' => env('DB_ENGINE', null)가 있는지 반드시 확인하십시오.
언급URL : https://stackoverflow.com/questions/11358849/mysql-innodb-engine-in-laravel
'programing' 카테고리의 다른 글
Swift에서 단추 텍스트 밑줄 표시 (0) | 2023.08.16 |
---|---|
CSS에서 너비 = 100% - 100%를 어떻게 할 수 있습니까? (0) | 2023.08.16 |
Application_Start 내에서 현재 애플리케이션 물리적 경로 가져오기 (0) | 2023.08.16 |
div 요소 내의 텍스트를 대체하려면 어떻게 해야 합니까? (0) | 2023.08.16 |
TypeError가 표시되는 이유: 시퀀스를 'float' 유형이 아닌 형식으로 곱할 수 없습니까? (0) | 2023.08.16 |