انتقال اطلاعات دیتابیس از وردپرس به لاراول

اگر قصد انتقال اطلاعات موجود در دیتابیس وردپرس را به دیتابیس شخصی خود در لاراول داشته باشیم، می‌توان از روش‌های مختلفی استفاده کرد که من برای یکی از پروژه‌های شخصی خود به شکل زیر عمل کردم.

سناریوی این نوشته نیز بدین صورت است که من قصد دارم اطلاعات موجود در جدول wp_posts از دیتابیس وردپرس را به جدول posts در دیتابیس لاراول خود انتقال دهم.

من برای انتقال اطلاعات موجود در دیتابیس وردپرس به دیتابیس لاراول به صورت زیر عمل کردم.

۱- ابتدا یک جدول مشابه جدول posts را در دیتابیس وردپرس خود ایجاد کردم. جهت سادگی کار نیز با استفاده از دستور زیر کوئری SQL ایجاد این جدول را در لاراول به دست آوردم و دقیقاً همان را در phpMyAdmin اجرا کردم تا جدول posts در دیتابیس وردپرس ایجاد شود:

php artisan migrate --pretend

در حقیقت دستور بالا خروجی به حالت SQL را از Migrationهای لاراولی من ایجاد می‌کند که من با توجه به نیاز خود، بخش posts را انتخاب و در phpMyAdmin اجرا کردم.

این هم خروجی SQL:

create table `posts` (`id` bigint unsigned not null auto_increment primary key, `user_id` bigint unsigned not null, `title` varchar(255) not null, `slug` varchar(255) not null, `summary` text not null, `content` longtext not null, `password` varchar(255) not null, `slider` enum('0', '1') not null, `status` enum('0', '1', '2') not null, `display` enum('0', '1') not null, `show_comments` enum('0', '1') not null, `views` bigint unsigned not null, `feature_image` varchar(255) not null, `image_2` varchar(255) not null, `image_3` varchar(255) not null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci'

۲- در این مرحله باید کوئری‌ای در دیتابیس وردپرس خود بنویسیم و اجرا کنیم که اطلاعات مورد نیاز ما از wp_posts را در posts که قبلتر ایجاد کردیم، insert نماید. کوئری من به صورت زیر است:

INSERT INTO `posts` 
(`id`, `user_id`,`title`,`slug`,`summary`,`slider`,`status`,`display`,`show_comments`,`views`,`content`,`created_at`) 
SELECT 
`ID`, `post_author`,`post_title` ,`post_name`,`post_excerpt`,'0','1','1','1','0',`post_content`,`post_date`
FROM `wp_posts` WHERE `post_type` = 'post';

بعد از اجرای کوئری در صورتی که مشکلی در آن نباشد، اطلاعات در جدول posts که ایجاد کرده بودیم، insert خواهند شد.

۳- کافی است که از جدول posts در دیتابیس وردپرس Export گرفته و آن را در جدول posts از دیتابیس لاراول، Import نماییم.

کار تمام است و داده‌های ما در دیتابیس لاراولی قابل دسترسی‌اند.

نکته: البته این روشی بود که من استفاده کردم. یقیقناً بسته به نیاز روش‌های دیگری هم وجود دارند که من از این روش در پروژه‌ی خود استفاده کردم تا ناچار به انتقال تک به تک داده‌ها نشوم.

درباره نویسنده: احسان

مطالب زیر را حتما بخوانید