You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

golang-migrate能否自动创建日期格式命名的迁移文件?

golang-migrate如何自动生成日期格式前缀的迁移文件?

问题描述

我想用golang-migrate创建以日期时间格式(如20241010173522)命名的数据库迁移文件,替代默认的001、002序号命名。注意到CLI命令有-format选项,原以为使用-format datetime参数即可实现,但执行命令:

migrate create -ext sql -dir db/migrations -format datetime initial_blank

后,生成的文件名为datetime_initial_blank,并非预期的20241010173522_initial_blank。想了解是必须手动生成日期前缀并添加到文件名,还是golang-migrate本身支持自动生成该格式的文件名。

解答

golang-migrate本身支持自动生成日期格式的前缀,你之前误用了-format参数的写法。这个选项需要传入Go语言的时间布局字符串,而非datetime这类关键字。

要生成YYYYMMDDHHMMSS格式的前缀,执行如下命令即可:

migrate create -ext sql -dir db/migrations -format "20060102150405" initial_blank

这里的20060102150405是Go语言的参考时间布局(对应标准时间Mon Jan 2 15:04:05 MST 2006),工具会自动将其替换为当前的日期时间,最终生成的文件名就是20241010173522_initial_blank这类符合预期的格式。

如果需要其他日期格式,只需调整对应的Go时间布局字符串。比如使用2006-01-02_150405作为格式,会生成2024-10-10_173522_initial_blank这类带分隔符的文件名。

无需手动生成日期前缀,正确使用-format参数就能让工具自动完成这一步。

内容的提问来源于stack exchange,提问作者vbp13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 11:32:42