testing - 带有ecto的CRDB,在测试时,它不会从初始值开始序列
问题描述
我正在为我的应用程序使用 cockroachDB。
其中一种模式具有增量 ID(从 1 开始)。我为该表制作了序列并将该序列用作主键。
问题是除非我删除数据库并创建它,否则此序列不会重置。
所以我的问题是每次运行测试时是否可以重置此序列?还是只有在每次运行测试时都删除并创建数据库时才能做到这一点?
先感谢您。
解决方案
CockroachDB 支持setval()
重置序列值的功能。
但也要记住,序列并不能保证不会有间隙(回滚的事务可能会在序列中留下从未使用过的间隙),因此您的应用程序不应假设值从 1 开始而不跳过任何内容。如果您不重置序列,则与在测试套件开始时有一个非常大的间隙相同。
推荐阅读
- python - 如何使用 Python Boto3 从 S3 下载未知对象?
- python - 如果表中不存在,则从列表中插入记录
- vue.js - Vue.js SEO 友好
- javascript - Laravel mix 最小化复制的文件
- ios - 写入 MTLTexture 会导致致命错误
- windows - UWP 或 UAP Windows 应用中的 WebView 相关 API 是否有任何变化?
- ios - 如何在 UITextView 中的文本之后在 UITextView 中排列视频?
- javascript - 如何在 HighCharts 中设置两个不同的图例
- javascript - 从数据库中检索图像时,jQuery 效果不起作用,但仅适用于静态图像
- javascript - 如何在按钮单击时从 ng-repeat 的特定列中过滤网格视图数据