Meine Blog-Beiträge

Wie verschiebt man die Laravel-Datenbank?

Wie verschiebt man die Laravel-Datenbank?


Hallo Freunde in diesem Artikel werden wir lernen, wie man die Daten in unseren Datenbanken in eine andere Datenbank verschieben

Ersten Mysql Verbindung datenbank/config.phpKopieren und Einfügen in die Datei, und bearbeiten Sie dann die Linknamen wie folgt

'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'datenbank' => env('DB_DATABASE', 'schmiede'),
'Benutzername' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'Kollation'> 'utf8mb4_unicode_ci',
'präfix' => '',
'prefix_indexes' => true,
'streng' => wahr,
'engine' => null,
'optionen' => extension_loaded('pdo_mysql') ? array_filter([
g.V.:MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],

'mysql-transfer' => [
'driver' => 'mysql',
'host' => env('DB_TRANSFER_HOST', '127.0.0.1'),
'port' => env('DB_TRANSFER_PORT', '3306'),
'datenbank' => env('DB_TRANSFER_DATABASE', 'forge'),
'Benutzername' => env('DB_TRANSFER_USERNAME','forge'),
'password' => env('DB_TRANSFER_PASSWORD', ''),
'charset' => 'utf8mb4',
'Kollation'> 'utf8mb4_unicode_ci',
'präfix' => '',
'streng' => wahr,
'engine' => null,
'optionen' => extension_loaded('pdo_mysql') ? array_filter([
g.V.:MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],

Öffnen Sie dann Ihre Datei auf Ihrer .env und konfigurieren Sie den Datenbanklink wie folgt:

DB_CONNECTION=mysql-übertragung

DB_HOST=127,0,0,1
DB_PORT=3306
DB_DATABASE=Datenbank1
DB_USERNAME=Root
DB_PASSWORD=

DB_TRANSFER_HOST=127,0,0,1
DB_TRANSFER_PORT=3306
DB_TRANSFER_DATABASE=Datenbank2
DB_TRANSFER_USERNAME=Root
DB_TRANSFER_PASSWORD=

Fügen wir nun einen neuen Aussickern zu Deinem Seeds-Ordner hinzu.

php handwerker make:seed TransferSeeder

Öffnen wir nun diese Datei und fügen der Funktion des Vorgangs Folgendes hinzu. Table_name, geben Sie den Namen der Tabelle ein, in die Sie Ihre Daten an die Stelle verschieben, an der sie steht.


use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class TransferSeeder extends Seeder
{
/**
* Run the database seeds.
*
*
@return void
*/
public function run()
{
// burada veri tabanı bağlanıyoruz
$database = DB::connection('mysql');
// burada ise taşıyacağımız verileri alıyoruz
// not : blog yazan yere taşıyacağımız verilerin tablosunu yazıyoruz
foreach ($database->table('blog')->get() as $data) {
// Buradada table_name yazan yere taşıyacağımız tablonun ismini yazıyoruz

DB::table('table_name')->insert((array) $data);
}

foreach ($database->table('blog')->get() as $data) {
// Buradada table_name yazan yere taşıyacağımız tablonun ismini yazıyoruz

DB::table('table_name')->insert((array) $data);
}
}
}

Wenn Sie fertig sind, wird der folgende Code DatenbankSeeder.php fügen Sie es einfach zu Ihrer Datei hinzu.

public function run()
{
$this->call(TransferSeeder::class);
}

Führen Sie diesen Befehl aus, nachdem Sie den obigen Code hinzugefügt haben.

php artisan migrate:fresh --seed

Hinweis: Wenn die Felder in der Tabelle, die Sie verschieben, und die Felder in der anderen Tabelle nicht identisch sind, php artisan migrate:fresh --seed Der Befehl, den Sie ausführen, erhält ebenfalls Fehler.

Aber wenn die Felder zwischen den beiden Tabellen unterschiedlich sein werden TransferSeeder.php wir öffnen unsere Datei und korrigieren sie wie folgt.


use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class TransferSeeder extends Seeder
{
/**
* Run the database seeds.
*
*
@return void
*/
public function run()
{
// burada veri tabanı bağlanıyoruz
$database = DB::connection('mysql');
// burada ise taşıyacağımız verileri alıyoruz
// not : blog yazan yere taşıyacağımız verilerin tablosunu yazıyoruz
foreach ($database->table('blog')->get() as $data) {
// Buradada table_name yazan yere taşıyacağımız tablonun ismini yazıyoruz ve taşıyacağımız tablonun alanlarını aşağıdaki şekilde düzenliyoruz ve $data değişkeninden gelen verileri onlara aktarıyoruz

DB::table('table_name')->insert((array) [
'id' => $data->id,
'title' => $data->baslik,
'content' => $data->icerik,
]);
}

foreach ($database->table('blog')->get() as $data) {
// Buradada table_name yazan yere taşıyacağımız tablonun ismini yazıyoruz ve taşıyacağımız tablonun alanlarını aşağıdaki şekilde düzenliyoruz ve $data değişkeninden gelen verileri onlara aktarıyoruz

DB::table('table_name')->insert((array) [
'id' => $data->id,
'title' => $data->baslik,
'content' => $data->icerik,
]);
}
}
}

Nachdem wir es auf diese Weise behoben haben, führen wir den folgenden Code aus, und alle unsere Daten werden in diese Tabelle verschoben.

php artisan migrate:fresh --seed



Diesen Artikel teilen


Kommentare (0)

Kommentar