Merge MySQL DBs from 2 different Laravel project into one DB.

Updated: Jan 24, 2025

Merge MySQL DBs from 2 different Laravel project into one DB.

Merging MySQL databases from two different Laravel projects into one database involves several steps, including backing up the existing databases, creating a new database, importing the data, and updating the Laravel configuration files. Here's a detailed explanation of each step:

  1. Backup existing databases: Before merging the databases, it's essential to create backups of the existing databases to prevent any data loss. You can use MySQL command-line tools or a graphical user interface (GUI) tool like phpMyAdmin to create backups.

    For MySQL command-line tool:

    mysqldump -u [username] -p [database_name] > [backup_file.sql]
    

    For phpMyAdmin:

    • Go to phpMyAdmin and select the database you want to backup.
    • Click on the "Export" tab.
    • Choose the desired format (SQL) and click "Go."
    • Save the exported file on your local machine.

    Repeat this process for both databases.

  2. Create a new database: Log in to your MySQL server using the command-line tool or phpMyAdmin and create a new database with a name of your choice.

    For MySQL command-line tool:

    CREATE DATABASE [new_database_name];
    

    For phpMyAdmin:

    • Go to phpMyAdmin and click on the "New" tab.
    • Enter the database name and other details and click "Create."
  3. Import data: Use the MySQL command-line tool or phpMyAdmin to import the data from the backup files into the new database.

    For MySQL command-line tool:

    mysql -u [username] -p [new_database_name] < [backup_file.sql]
    

    For phpMyAdmin:

    • Go to phpMyAdmin and click on the "Import" tab.
    • Browse and select the backup file and click "Go."
  4. Update Laravel configuration files: Open the .env file in both Laravel projects and update the database credentials with the new database name, username, and password.

    For example:

    DB_DATABASE=new_database_name
    DB_USERNAME=new_database_username
    DB_PASSWORD=new_database_password
    

    Save the changes and close the files.

  5. Test the connection: In each Laravel project, run the following command to test the database connection:

    php artisan config:cache
    php artisan db:connect
    

    If the connection is successful, you should see a message like "Database connection successful."

  6. Merge tables (optional): If the two databases have overlapping tables, you may need to merge them manually using SQL queries or a database migration tool like Sequel Pro or HeidiSQL.

    For example, if both databases have a table named "users" with the same columns, you can merge them using the following SQL query:

    INSERT INTO new_database.users (column1, column2, ...)
    SELECT column1, column2, ...
    FROM old_database.users
    WHERE id NOT IN (SELECT id FROM new_database.users);
    

    Repeat this process for each overlapping table.

That's it! You have successfully merged the MySQL databases from two different Laravel projects into one database.