fix(copydb): fix migration to Postgres (#2601)

* chore(copydb): Use query builder during setup

* fix(copydb): Fix migration to Postgres
This commit is contained in:
Gabe Cook 2023-12-11 04:05:15 -06:00 committed by GitHub
parent 0916ec35da
commit 88728906a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5,6 +5,7 @@ import (
"fmt"
"strings"
"github.com/Masterminds/squirrel"
"github.com/pkg/errors"
"github.com/spf13/cobra"
@ -94,8 +95,15 @@ func copydb(fromProfile, toProfile *_profile.Profile) error {
for table := range copyMap {
println("Checking " + table + "...")
var cnt int
err := toDb.QueryRowContext(ctx, "SELECT COUNT(*) FROM "+table).Scan(&cnt)
if toProfile.Driver == "postgres" && table == "user" {
table = `"user"`
}
builder := squirrel.Select("COUNT(*)").From(table)
query, args, err := builder.ToSql()
if err != nil {
return errors.Wrapf(err, "fail to build query '%s'", table)
}
if err := toDb.QueryRowContext(ctx, query, args...).Scan(&cnt); err != nil {
return errors.Wrapf(err, "fail to check '%s'", table)
}
if cnt > 0 && table != "system_setting" {