fix(cmd): 维护子命令改经 OpenData 打开,--allow-newer 仅限 start/init
passwd/backup/gc 不再触发迁移与 user_version 守卫,回滚旧二进制场景备份仍可用(round2 P1-5,落实 D6)。
This commit is contained in:
+3
-3
@@ -238,7 +238,7 @@ func runResetPassword(args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
st, err := store.Open(cfg.DBPath(), false)
|
st, err := store.OpenData(cfg.DBPath())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -313,7 +313,7 @@ func runBackup(args []string) error {
|
|||||||
if dest == "" {
|
if dest == "" {
|
||||||
dest = filepath.Join(cfg.DataDir, fmt.Sprintf("pn-backup-%s.db", time.Now().Format("20060102-150405")))
|
dest = filepath.Join(cfg.DataDir, fmt.Sprintf("pn-backup-%s.db", time.Now().Format("20060102-150405")))
|
||||||
}
|
}
|
||||||
st, err := store.Open(cfg.DBPath(), false)
|
st, err := store.OpenData(cfg.DBPath())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -337,7 +337,7 @@ func runGC(args []string) error {
|
|||||||
commit = true
|
commit = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
st, err := store.Open(cfg.DBPath(), false)
|
st, err := store.OpenData(cfg.DBPath())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ func (c *Config) DBPath() string { return c.DataDir + "/pn.db" }
|
|||||||
|
|
||||||
func addCommonFlags(fs *flag.FlagSet, c *Config) {
|
func addCommonFlags(fs *flag.FlagSet, c *Config) {
|
||||||
fs.StringVar(&c.DataDir, "data-dir", "./data", "数据目录(SQLite 数据库所在)")
|
fs.StringVar(&c.DataDir, "data-dir", "./data", "数据目录(SQLite 数据库所在)")
|
||||||
fs.BoolVar(&c.AllowNewer, "allow-newer", false, "允许在更新的数据库 schema 版本上运行(跳过版本上界守卫)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func addServeFlags(fs *flag.FlagSet, c *Config) {
|
func addServeFlags(fs *flag.FlagSet, c *Config) {
|
||||||
@@ -34,6 +33,7 @@ func addServeFlags(fs *flag.FlagSet, c *Config) {
|
|||||||
fs.StringVar(&c.LogFormat, "log-format", "text", "日志格式(text|json)")
|
fs.StringVar(&c.LogFormat, "log-format", "text", "日志格式(text|json)")
|
||||||
fs.BoolVar(&c.BehindProxy, "behind-proxy", false, "位于可信反向代理之后(取 X-Forwarded-For 最右条目作为客户端 IP)")
|
fs.BoolVar(&c.BehindProxy, "behind-proxy", false, "位于可信反向代理之后(取 X-Forwarded-For 最右条目作为客户端 IP)")
|
||||||
fs.BoolVar(&c.Dev, "dev", false, "开发模式:允许非 Secure Cookie,仅允许监听 loopback 地址")
|
fs.BoolVar(&c.Dev, "dev", false, "开发模式:允许非 Secure Cookie,仅允许监听 loopback 地址")
|
||||||
|
fs.BoolVar(&c.AllowNewer, "allow-newer", false, "允许在更新的数据库 schema 版本上运行(跳过版本上界守卫)")
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParseStart 解析 `pn start` 参数。
|
// ParseStart 解析 `pn start` 参数。
|
||||||
@@ -55,13 +55,15 @@ func ParseInit(args []string) (*Config, error) {
|
|||||||
c := &Config{}
|
c := &Config{}
|
||||||
fs := flag.NewFlagSet("init", flag.ContinueOnError)
|
fs := flag.NewFlagSet("init", flag.ContinueOnError)
|
||||||
addCommonFlags(fs, c)
|
addCommonFlags(fs, c)
|
||||||
|
fs.BoolVar(&c.AllowNewer, "allow-newer", false, "允许在更新的数据库 schema 版本上运行(跳过版本上界守卫)")
|
||||||
if err := fs.Parse(args); err != nil {
|
if err := fs.Parse(args); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return c, nil
|
return c, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParseMaint 解析 `pn backup` / `pn gc` / `pn passwd` 参数(均只需数据目录)。
|
// ParseMaint 解析 `pn backup` / `pn gc` / `pn passwd` 参数(仅数据目录;
|
||||||
|
// 维护命令经 store.OpenData 打开,不迁移、无版本守卫,故无 --allow-newer,D6)。
|
||||||
// 返回 flag 解析后的剩余位置参数(如 backup 的输出路径)。
|
// 返回 flag 解析后的剩余位置参数(如 backup 的输出路径)。
|
||||||
func ParseMaint(cmd string, args []string) (*Config, []string, error) {
|
func ParseMaint(cmd string, args []string) (*Config, []string, error) {
|
||||||
c := &Config{}
|
c := &Config{}
|
||||||
|
|||||||
Reference in New Issue
Block a user