Search code examples
sqlmysqlmysqlimport

How to import a mysql dump while renaming some tables/columns and not importing others at all?


I'm importing a legacy db to a new version of our program, and I'm wondering if there's a way to not import some columns/tables from the dump, and rename other tables/columns as i import them? I'm aware I could edit the dump file in theory, but that seems like a hack, and so far none of my editors can handle opening the 1.3 gb file (Yes, I've read the question about that on here. No, none of the answers worked for me so far.).

Suggestions?


Solution

  • It's possible to not import some tables by denying permissions to do so, and using --force as a command line option.

    Not importing some columns, or renaming them is not possible (at least without editing the dump file, or making modifications once imported).

    My recommendation would be:

    • Import the tables into another database (1.3G should still be very quick).
    • Do your dropping/renaming.
    • Export the data to create yourself a new dump file.

    If you're worried the dump contains multiple databases, the mysql command line tool has a -o flag to only import the one.