My tips o' the day
I found an easy way to update a MySQL database with new columns this morning. The traditional way is to create an ALTER_TABLE script and run it. However, I had added more than 30 columns, and creating this script sounded like a pain in the ass. Keep in mind that I use Hibernate to create my database from scratch - tables, and all. If you're familiar with appfuse, you might be able to use this stuff.
- Dump the existing (production) database using "mysqldump -c database > database.sql". Edit this file, replacing CREATE TABLE with CREATE TABLE IF NOT EXISTS. The "-c" option includes column names in the insert statement.
- Create an empty database (appfuse: ant db-init) and export (mysqldump database > create-tables.sql) it.
- Drop all the tables in the production database (backup first!), mysql < create-tables.sql followed by mysql < database.sql.
Of course, other suggestions are welcome - I'd love to see a mysql diff tool that generates the ALTER script for me!
My other tip is how to start/stop Windows services from the command line - don't know why I haven't used this sooner.
net start "$serviceName"
Where $serviceName is something like "Apache Tomcat 4.1" - use "net start" to see all currently started services.
Posted by Steven Citron-Pousty on September 09, 2003 at 11:24 PM MDT #
If you'd like to post your script here though - feel free. If you wrap it in a <pre> tag, it'll probably look better.
Posted by Matt Raible on September 10, 2003 at 04:32 AM MDT #