Dropping geo_nodes table makes it impossible to drop the database
@qzhaogitlab ran into this while attempting to set up his GDK. Steps to reproduce:
- Run
RAILS_ENV=test bundle exec rake dbconsole
- Execute
DROP TABLE geo_nodes CASCADE
- Then run
RAILS_ENV=test bundle exec rake db:drop
Caused by:
PG::UndefinedTable: ERROR: relation "geo_nodes" does not exist
LINE 8: WHERE a.attrelid = '"geo_nodes"'::regclass
^
/Users/stanhu/gitlab/gdk-ee/gitlab/config/initializers/active_record_build_select.rb:18:in `build_select'
/Users/stanhu/gitlab/gdk-ee/gitlab/ee/lib/gitlab/geo.rb:36:in `block in enabled?'
/Users/stanhu/gitlab/gdk-ee/gitlab/ee/lib/gitlab/geo.rb:100:in `block (2 levels) in cache_value'
/Users/stanhu/gitlab/gdk-ee/gitlab/lib/gitlab/json_cache.rb:51:in `fetch'
/Users/stanhu/gitlab/gdk-ee/gitlab/ee/lib/gitlab/geo.rb:100:in `block in cache_value'
/Users/stanhu/gitlab/gdk-ee/gitlab/lib/gitlab/json_cache.rb:51:in `fetch'
/Users/stanhu/gitlab/gdk-ee/gitlab/ee/lib/gitlab/geo.rb:99:in `cache_value'
/Users/stanhu/gitlab/gdk-ee/gitlab/ee/lib/gitlab/geo.rb:36:in `enabled?'
/Users/stanhu/gitlab/gdk-ee/gitlab/ee/lib/gitlab/geo.rb:44:in `secondary?'
/Users/stanhu/gitlab/gdk-ee/gitlab/ee/lib/ee/gitlab/database.rb:13:in `read_only?'
/Users/stanhu/gitlab/gdk-ee/gitlab/config/initializers/fill_shards.rb:3:in `<main>'
/Users/stanhu/gitlab/gdk-ee/gitlab/config/environment.rb:5:in `<main>'
/Users/stanhu/.rbenv/versions/2.6.5/bin/bundle:23:in `load'
/Users/stanhu/.rbenv/versions/2.6.5/bin/bundle:23:in `<main>'
Tasks: TOP => db:drop => db:load_config => environment
(See full trace by running task with --trace)
I think we may need to check whether the geo_nodes
table exists in Gitlab::Geo.secondary?
.