Mohammad Yousef3 نشر 3 أبريل 2021 أرسل تقرير نشر 3 أبريل 2021 كيف يمكنني الحصول على أوامر SQL عند تنفيذ أمر تهجير البيانات ؟ php artisan migrate لأحصل على النتائج create table "users" ... create table "password_resets" ... اقتباس
0 Waleed Alfakiat نشر 3 أبريل 2021 أرسل تقرير نشر 3 أبريل 2021 عند تنفيذ أمر تهجير البيانات php artisan migrate نقوم بإضافة الأمر التالي إليها: --pretend وهذا المسؤول عن طباعة أوامر SQL في terminal التي تم تنفيذها لتهجير البيانات إلى قاعدة البيانات فيصبح الأمر هكذا: php artisan migrate --pretend والنتيجة تظهر في terminal: Migration table created successfully. CreateUsersTable: create table "users" … CreateUsersTable: create unique index … CreatePasswordResetsTable: create table "password_resets" … CreatePasswordResetsTable: create index password_resets_email_index … CreatePasswordResetsTable: create index password_resets_token_index … ولحفظ النتيجة في ملف migrate.sql نقوم بتوجيه المخرجات من terminal إلى الملف المحدد بإضافة الأمر: > migrate.sql ولكن يتم حفظ المخرجات SQL مع زوائد إضافية مثل ("CreateUsersTable: " و "CreatePasswordResetsTable: ") كما ظهرت في Terminal ولفلترة النتائج من هذه الزوائد نقوم باستدعاء الأمر: --no-ansi المسؤول عن عدم طباعة هذه الزوائد عن أوامر SQL بذلك يكون لدينا المخرجات عبارة عن أوامر SQL فقط ويتم حفظها في ملف migrate.sql من خلال الأمر: php artisan migrate --pretend --no-ansi > migrate.sql 1 اقتباس
0 بلال زيادة نشر 4 أبريل 2021 أرسل تقرير نشر 4 أبريل 2021 بتاريخ 6 ساعات قال Alfakiat: عند تنفيذ أمر تهجير البيانات php artisan migrate نقوم بإضافة الأمر التالي إليها: --pretend وهذا المسؤول عن طباعة أوامر SQL في terminal التي تم تنفيذها لتهجير البيانات إلى قاعدة البيانات فيصبح الأمر هكذا: php artisan migrate --pretend والنتيجة تظهر في terminal: Migration table created successfully. CreateUsersTable: create table "users" … CreateUsersTable: create unique index … CreatePasswordResetsTable: create table "password_resets" … CreatePasswordResetsTable: create index password_resets_email_index … CreatePasswordResetsTable: create index password_resets_token_index … ولحفظ النتيجة في ملف migrate.sql نقوم بتوجيه المخرجات من terminal إلى الملف المحدد بإضافة الأمر: > migrate.sql ولكن يتم حفظ المخرجات SQL مع زوائد إضافية مثل ("CreateUsersTable: " و "CreatePasswordResetsTable: ") كما ظهرت في Terminal ولفلترة النتائج من هذه الزوائد نقوم باستدعاء الأمر: --no-ansi المسؤول عن عدم طباعة هذه الزوائد عن أوامر SQL بذلك يكون لدينا المخرجات عبارة عن أوامر SQL فقط ويتم حفظها في ملف migrate.sql من خلال الأمر: php artisan migrate --pretend --no-ansi > migrate.sql بالإضافة إلى ما ذكر من قبل المدرب @Alfakiat , و لمزيد من التخصيص في كيفية الحصول على الاستعلامات , ضع في اعتبارك اختراق المصدر وإنشاء الأمر المخصص الخاص بك, إليك بعض التعليمات البرمجية السريعة للحصول على جميع عمليات الترحيل $migrator = app('migrator'); $db = $migrator->resolveConnection(null); $migrations = $migrator->getMigrationFiles('database/migrations'); $queries = []; foreach($migrations as $migration) { $migration_name = $migration; $migration = $migrator->resolve($migration); $queries[] = [ 'name' => $migration_name, 'queries' => array_column($db->pretend(function() use ($migration) { $migration->up(); }), 'query'), ]; } dd($queries); والنتيجة تكون array:2 [ 0 => array:2 [ "name" => "2014_10_12_000000_create_users_table" "queries" => array:2 [ 0 => "create table "users" ("id" integer not null primary key autoincrement, "name" varchar not null, "email" varchar not null, "password" varchar not null, "remember_token" varchar null, "created_at" datetime not null, "updated_at" datetime not null)" 1 => "create unique index users_email_unique on "users" ("email")" ] ] 1 => array:2 [ "name" => "2014_10_12_100000_create_password_resets_table" "queries" => array:3 [ 0 => "create table "password_resets" ("email" varchar not null, "token" varchar not null, "created_at" datetime not null)" 1 => "create index password_resets_email_index on "password_resets" ("email")" 2 => "create index password_resets_token_index on "password_resets" ("token")" ] ] ] سيشمل هذا الكود على جميع عمليات الترحيل, لمعرفة كيفية الحصول على ما لم يتم ترحيله بالفعل , ألق نظرة على دالة run في المسار التالي vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php 1 اقتباس
السؤال
Mohammad Yousef3
كيف يمكنني الحصول على أوامر SQL عند تنفيذ أمر تهجير البيانات ؟
لأحصل على النتائج
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.