programing

Larvel 롤백 관련 데이터베이스

stoneblock 2023. 9. 1. 20:31

Larvel 롤백 관련 데이터베이스

데이터베이스 시스템을 롤백하려고 합니다.php artisan migrate:rollback --database='system'

하지만 이주처럼 작동하지 않는 것 같습니다.php artisan migrate --database='system

무슨 일이 일어나고 있는지 찾는 것을 도와줄 수 없습니까?

여기 내 구성/다운로드

'connections' => [

    'sqlite' => [
        'driver' => 'sqlite',
        'database' => env('DB_DATABASE', database_path('database.sqlite')),
        'prefix' => '',
    ],

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'port'      => env('DB_PORT', '4444'),
        'database'  => env('DB_DATABASE', 'forge'),
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
        'engine'    => null,
    ],

    'system' => [
        'driver' => 'mysql',
        'host' => env('SYSTEM_DB_HOST', 'localhost'),
        'port' => env('SYSTEM_DB_PORT', '4444'),
        'database' => env('SYSTEM_DB_DATABASE', 'forge'),
        'username' => env('SYSTEM_DB_USERNAME', 'forge'),
        'password' => env('SYSTEM_DB_PASSWORD', ''),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],

이것은 나의 .env 파일입니다.

#-----------------------------------------------------
# CLIENT DB CONNECTION
#-----------------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=databaseNameClient
DB_USERNAME=homestead
DB_PASSWORD=secret

#-----------------------------------------------------
# SYSTEM DB CONNECTION
#-----------------------------------------------------
DB_CONNECTION=system
SYSTEM_DB_HOST=127.0.0.1
SYSTEM_DB_PORT=3306
SYSTEM_DB_DATABASE=databaseNameSystem
SYSTEM_DB_USERNAME=homestead
SYSTEM_DB_PASSWORD=secret

마이그레이션을 시도할 때 발생한 메시지 오류입니다. migration --migration='system' :

[Symfony\Component\Debug\Exception\FatalThrowableError]
  Call to undefined method Illuminate\Database\Schema\MySqlBuilder::dddconnection()

스택 추적의 마지막 행은 다음과 같습니다.

#23 /vendor/symfony/console/Application.php(117): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(107): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 {main}  
[2018-04-17 00:51:07] local.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Call to undefined method Illuminate\Database\Schema\MySqlBuilder::dddconnection() in /vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:217

공급업체 폴더의 메서드를 실수로 변경했습니다.

1단계.

공급업체 폴더를 삭제합니다.

2단계.

달려.

composer install

모든 라이브러리를 다시 설치하고 변경 사항을 덮어씁니다.

이것이 도움이 되길 바랍니다.

전체 오류 로그를 확인하지 않고 말하기는 매우 어렵지만, 다음과 같은 특정 데이터베이스 연결을 제공하여 마이그레이션에 대한 다운 메소드를 만든 경우에는 이에 대한 대안이 있습니다.

Schema::connection('mysql2')->create('some_table', function($table)
{
$table->increments('id'):
});

그럼 오직php artisan migrate:rollback이 일에 완벽하게 효과가 있을 것입니다.

If you look in your migrations table, then you’ll see each migration 
 has a batch number. So when you roll back, it rolls back each 
 migration that was part of the last batch.

If you only want to roll back the very last migration, then just 
increment the batch number by one. Then next time you run the rollback 
    command, it’ll only roll back that one migration as it’s in a “batch” of 
 its own.

자세한 내용은 다음 URL을 참조하십시오.Laravel에서 특정 마이그레이션 하나 롤백

안녕하세요. 제 질문에 답변해 주셔서 감사합니다.무슨 일인지 알았어요.마이그레이션 중 하나에서 I have a down 함수의 철자가 잘못 입력되었습니다.

         public function down()
{
    if (Schema::dddconnection('system')->hasTable('apiservices_categories_translations')) {
        Schema::connection('system')->dropIfExists('apiservices_categories_translations');
    }
}

언급URL : https://stackoverflow.com/questions/49868252/laravel-rollback-specific-database