|
| 1 | +#!/usr/bin/env zsh |
| 2 | + |
| 3 | +set -eu |
| 4 | + |
| 5 | +die() { echo "$0: $*" 1>&2 ; false; } |
| 6 | + |
| 7 | +root_dir="$(dirname $(dirname "$0:A"))" |
| 8 | +pid_file="$root_dir/tmp/cockroach.pid" |
| 9 | +log_file="$root_dir/tmp/cockroachdb.log" |
| 10 | + |
| 11 | +mkdir -p "$root_dir/tmp" |
| 12 | +rm -f "$pid_file" |
| 13 | + |
| 14 | +if ! (( ${+commands[cockroach]} )); then |
| 15 | + die 'the `cockroach` toolchain is not installed. |
| 16 | +See https://www.cockroachlabs.com/docs/stable/install-cockroachdb.html' |
| 17 | +fi |
| 18 | + |
| 19 | +cockroach start-single-node \ |
| 20 | + --insecure --store=type=mem,size=0.25 --advertise-addr=localhost --pid-file "$pid_file" \ |
| 21 | + &> "$log_file" & |
| 22 | + |
| 23 | +cockroach_pid=$! |
| 24 | + |
| 25 | +until [[ -f "$pid_file" ]]; do |
| 26 | + sleep 1 |
| 27 | +done |
| 28 | + |
| 29 | + |
| 30 | +cat <<-SQL | cockroach sql --insecure --host=localhost:26257 > /dev/null |
| 31 | +-- https://www.cockroachlabs.com/docs/stable/local-testing.html |
| 32 | +SET CLUSTER SETTING kv.raft_log.disable_synchronization_unsafe = true; |
| 33 | +SET CLUSTER SETTING kv.range_merge.queue_interval = '50ms'; |
| 34 | +SET CLUSTER SETTING jobs.registry.interval.gc = '30s'; |
| 35 | +SET CLUSTER SETTING jobs.registry.interval.cancel = '180s'; |
| 36 | +SET CLUSTER SETTING jobs.retention_time = '15s'; |
| 37 | +SET CLUSTER SETTING sql.stats.automatic_collection.enabled = false; |
| 38 | +SET CLUSTER SETTING kv.range_split.by_load_merge_delay = '5s'; |
| 39 | +ALTER RANGE default CONFIGURE ZONE USING "gc.ttlseconds" = 600; |
| 40 | +ALTER DATABASE system CONFIGURE ZONE USING "gc.ttlseconds" = 600; |
| 41 | +
|
| 42 | +CREATE DATABASE activerecord_unittest; |
| 43 | +CREATE DATABASE activerecord_unittest2; |
| 44 | +SQL |
| 45 | + |
| 46 | +tail -f "$log_file" |
| 47 | + |
| 48 | +trap "kill $cockroach_pid" EXIT |
0 commit comments