mirror of
https://github.com/empayre/fleet.git
synced 2024-11-08 09:43:51 +00:00
35806f1442
This PR separates the table migrations from the data population migrations. Table migrations run before data migrations. Now, we have the ability to create the database tables without populating them with data. This can be useful for running "unit" tests against a MySQL store that doesn't have any pre-populated data. When performing real migrations, or for more "integration" style testing, the data migrations can also be executed. Note there are some special cases that must be observed with these migrations, and the README is updated to reflect those.
35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
package tables
|
|
|
|
import (
|
|
"database/sql"
|
|
)
|
|
|
|
func init() {
|
|
MigrationClient.AddMigration(Up_20161118212758, Down_20161118212758)
|
|
}
|
|
|
|
func Up_20161118212758(tx *sql.Tx) error {
|
|
_, err := tx.Exec(
|
|
"CREATE TABLE `queries` (" +
|
|
"`id` int(10) unsigned NOT NULL AUTO_INCREMENT," +
|
|
"`created_at` timestamp DEFAULT CURRENT_TIMESTAMP," +
|
|
"`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP," +
|
|
"`deleted_at` timestamp NULL DEFAULT NULL," +
|
|
"`deleted` tinyint(1) NOT NULL DEFAULT FALSE," +
|
|
"`saved` tinyint(1) NOT NULL DEFAULT FALSE," +
|
|
"`name` varchar(255) NOT NULL," +
|
|
"`description` varchar(255) DEFAULT NULL," +
|
|
"`query` varchar(255) NOT NULL," +
|
|
"`author_id` int(10) unsigned DEFAULT NULL," +
|
|
"PRIMARY KEY (`id`)," +
|
|
"FOREIGN KEY (`author_id`) REFERENCES `users`(`id`) ON DELETE SET NULL" +
|
|
") ENGINE=InnoDB DEFAULT CHARSET=utf8;",
|
|
)
|
|
return err
|
|
}
|
|
|
|
func Down_20161118212758(tx *sql.Tx) error {
|
|
_, err := tx.Exec("DROP TABLE IF EXISTS `queries`;")
|
|
return err
|
|
}
|