CRDB с экто, при тестировании не запускает последовательность с начального значения - PullRequest
0 голосов
/ 01 ноября 2018

Я использую cockroachDB для своего приложения.

Одна из схем имеет инкрементный идентификатор (от 1). Я сделал последовательность для этой таблицы и использую последовательность для первичного ключа.

Проблема в том, что эта последовательность не сбрасывается, если я не удаляю базу данных и не создаю ее.

Итак, мои вопросы: можно ли сбрасывать эту последовательность каждый раз, когда я запускаю тест? или это возможно сделать, только если я удаляю и создаю базу данных каждый раз, когда я запускаю тест?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

CockroachDB поддерживает функцию setval() для сброса значения последовательности.

Но также помните, что последовательности не гарантируют, что пропусков не будет (откат транзакций может оставить пропуски в последовательности, которая никогда не использовалась), поэтому ваше приложение не должно предполагать, что значения начинаются с 1, не пропуская ничего. Если вы не сбрасываете последовательность, это то же самое, что очень большой разрыв в начале вашего набора тестов.

0 голосов
/ 01 ноября 2018

Я почти уверен, что единственный способ добиться этого - действительно «удалять и создавать базу данных каждый раз, когда я запускаю тест»

Вот ссылка - Как выполнить откат, сброс или удаление базы данных Ecto test?

...