Как изменить таблицу с помощью схемы SQL? - PullRequest
0 голосов
/ 25 ноября 2018

Я использую sqlx для подключения моей базы данных MySQL к Golang.У меня есть схема SQL, где определены все операторы CREATE TABLE IF NOT EXISTS....Вот пример:

CREATE TABLE IF NOT EXISTS `users`
  (
     `id` INT(0) NOT NULL auto_increment,
     `language_code` VARCHAR(5) NOT NULL,
     `premium` BIT(0) DEFAULT 0,
     `status` VARCHAR(100) NOT NULL DEFAULT '',
     `user_id` INT(0) NOT NULL,
     PRIMARY KEY (id)
  );
...

Вот как я подключаюсь к базе данных и выполняю все запросы каждый раз:

Database, err = sqlx.Connect(Config.Database.Type, Config.Database.DataSourceString) // Connect to the database

if err != nil { // If there's an error, handle it
    panic(err.Error())
}

defer Database.Close() // Close the database when the function finishes

schemaSQL, err := ioutil.ReadFile("schema.sql") // Read the configuration file (DealsFinderBot/config.yaml)

if err != nil { // If there's an error, handle it
    panic(err.Error())
}

for _, query := range strings.Split(string(schemaSQL), ";") { // Loop on the queries of the schema
    if strings.TrimSpace(query) != "" { // If the query is not empty
        Database.MustExec(query) // Execute the query
    }
}

Я хотел бы обновлять каждый раз ( изменить таблицу) каждый раз, когда я добавляю новый столбец или редактирую некоторые параметры (например, NOT NULL или DEFAULT '').Как я мог это сделать?

...