我在postgres中有一个数据库,我想为新客户创建新的架构。现在是第一次RunSyncb
时,它在第一个架构中为我创建了表。现在,对于新创建的架构,它没有创建。我正在对不同的架构使用RegisterDatabse
方法,并以架构名称作为别名。使用连接字符串中的search_path,所有不同的模式都有单独的数据库字符串。
func DBString() string {
host := fmtSafeGetStringE("config_database.host", "localhost")
// treat the port as string too, as its eventually becoming part of dbstring.
port := fmtSafeGetStringE("config_database.port", "5432")
user := fmtSafeGetStringE("config_database.user", "postgres")
password := fmtSafeGetStringE("config_database.password", "postgres")
return fmt.Sprintf("host=%s port=%s user=%s dbname=%%s password=%s sslmode=disable search_path=%%s", host, port, user, password)}
现在使用以下不同的模式
if err = orm.RegisterDataBase("SchemaA", Dialect(), fmt.Sprintf(DBString(), ADMIN_DATABASE, "SchemaA")); err != nil {}
if err = orm.RegisterDataBase("SchemaB", Dialect(), fmt.Sprintf(DBString(), ADMIN_DATABASE, "SchemaB")); err != nil {}
现在,当我第一次运行SyncDB时,它将为SchemaA创建表
if err := orm.RunSyncdb("SchemaA", true, true); err == nil {}
但是对于SchemaB,不是。
if err := orm.RunSyncdb("SchemaB", true, true); err == nil {}
有人可以帮忙吗?