Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

db:create is failed #61

Closed
holidayworking opened this issue Jun 4, 2020 · 5 comments · Fixed by #76
Closed

db:create is failed #61

holidayworking opened this issue Jun 4, 2020 · 5 comments · Fixed by #76
Assignees
Labels
bug Something isn't working

Comments

@holidayworking
Copy link

holidayworking commented Jun 4, 2020

Steps to reproduce

./bin/rails db:create

Expected behavior

db:create is succeeded

Actual behavior

Mysql2::Error: Unknown database 'public'
Couldn't create 'iroha_development' database. Please check your configuration.
rails aborted!
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown database 'public'
/usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `_query'
/usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `block in query'
/usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `handle_interrupt'
/usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `query'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:202:in `block (2 levels) in execute'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:201:in `block in execute'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:718:in `block (2 levels) in log'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:717:in `block in log'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:708:in `log'
/usr/local/bundle/gems/scout_apm-2.6.7/lib/scout_apm/instruments/active_record.rb:279:in `log'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:200:in `execute'
/usr/local/bundle/gems/active_record_mysql_xverify-0.1.1/lib/active_record_mysql_xverify/error_handler.rb:6:in `execute'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/mysql/database_statements.rb:41:in `execute'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/adapters/mysql2_adapter.rb:42:in `reset'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/adapters/mysql2_adapter.rb:36:in `initialize'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/adapters/mysql2_adapter.rb:9:in `new'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/adapters/mysql2_adapter.rb:9:in `mysql2_adapter'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/tenant.rb:56:in `adapter'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/tenant.rb:25:in `init_once'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/railtie.rb:39:in `block in connection'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/railtie.rb:38:in `tap'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/railtie.rb:38:in `connection'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/mysql_database_tasks.rb:8:in `connection'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/mysql_database_tasks.rb:16:in `create'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:126:in `create'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:185:in `block in create_current'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:479:in `block (2 levels) in each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:476:in `each'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:476:in `block in each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:475:in `each'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:475:in `each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:184:in `create_current'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/railties/databases.rake:39:in `block (2 levels) in <main>'
/usr/local/bundle/gems/railties-6.0.2.2/lib/rails/commands/rake/rake_command.rb:23:in `block in perform'
/usr/local/bundle/gems/railties-6.0.2.2/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/usr/local/bundle/gems/railties-6.0.2.2/lib/rails/command.rb:48:in `invoke'
/usr/local/bundle/gems/railties-6.0.2.2/lib/rails/commands.rb:18:in `<main>'
/usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/dependencies.rb:325:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/dependencies.rb:325:in `require'
/app/bin/rails:12:in `<top (required)>'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/client/rails.rb:28:in `load'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/client/rails.rb:28:in `call'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/client/command.rb:7:in `call'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/client.rb:30:in `run'
/usr/local/bundle/gems/spring-2.1.0/bin/spring:49:in `<top (required)>'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/binstub.rb:11:in `load'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/binstub.rb:11:in `<top (required)>'
/app/bin/spring:16:in `<top (required)>'
./bin/rails:5:in `load'
./bin/rails:5:in `<main>'

Caused by:
Mysql2::Error: Unknown database 'public'
/usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `_query'
/usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `block in query'
/usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `handle_interrupt'
/usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `query'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:202:in `block (2 levels) in execute'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:201:in `block in execute'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:718:in `block (2 levels) in log'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:717:in `block in log'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:708:in `log'
/usr/local/bundle/gems/scout_apm-2.6.7/lib/scout_apm/instruments/active_record.rb:279:in `log'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:200:in `execute'
/usr/local/bundle/gems/active_record_mysql_xverify-0.1.1/lib/active_record_mysql_xverify/error_handler.rb:6:in `execute'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/connection_adapters/mysql/database_statements.rb:41:in `execute'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/adapters/mysql2_adapter.rb:42:in `reset'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/adapters/mysql2_adapter.rb:36:in `initialize'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/adapters/mysql2_adapter.rb:9:in `new'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/adapters/mysql2_adapter.rb:9:in `mysql2_adapter'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/tenant.rb:56:in `adapter'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/tenant.rb:25:in `init_once'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/railtie.rb:39:in `block in connection'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/railtie.rb:38:in `tap'
/usr/local/bundle/gems/ros-apartment-2.6.1/lib/apartment/railtie.rb:38:in `connection'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/mysql_database_tasks.rb:8:in `connection'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/mysql_database_tasks.rb:16:in `create'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:126:in `create'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:185:in `block in create_current'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:479:in `block (2 levels) in each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:476:in `each'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:476:in `block in each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:475:in `each'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:475:in `each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/tasks/database_tasks.rb:184:in `create_current'
/usr/local/bundle/gems/activerecord-6.0.2.2/lib/active_record/railties/databases.rake:39:in `block (2 levels) in <main>'
/usr/local/bundle/gems/railties-6.0.2.2/lib/rails/commands/rake/rake_command.rb:23:in `block in perform'
/usr/local/bundle/gems/railties-6.0.2.2/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/usr/local/bundle/gems/railties-6.0.2.2/lib/rails/command.rb:48:in `invoke'
/usr/local/bundle/gems/railties-6.0.2.2/lib/rails/commands.rb:18:in `<main>'
/usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/dependencies.rb:325:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.2.2/lib/active_support/dependencies.rb:325:in `require'
/app/bin/rails:12:in `<top (required)>'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/client/rails.rb:28:in `load'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/client/rails.rb:28:in `call'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/client/command.rb:7:in `call'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/client.rb:30:in `run'
/usr/local/bundle/gems/spring-2.1.0/bin/spring:49:in `<top (required)>'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/binstub.rb:11:in `load'
/usr/local/bundle/gems/spring-2.1.0/lib/spring/binstub.rb:11:in `<top (required)>'
/app/bin/spring:16:in `<top (required)>'
./bin/rails:5:in `load'
./bin/rails:5:in `<main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)

System configuration

  • Database: (Tell us what database and its version you use.) MySQL 5.6.21

  • Apartment version: 2.6.1

  • Apartment config (in config/initializers/apartment.rb or so):

    • use_schemas: true
  • Rails (or ActiveRecord) version: 6.0.2.2

  • Ruby version: 2.6.6

@rpbaltazar
Copy link
Contributor

Thank you for reporting. I will try to look at it over the weekend.

@holidayworking
Copy link
Author

Thanks for your reply.

My config/database.yml looks like this:

default: &default
  adapter: <%= ENV.fetch('DB_ADAPTER', 'mysql2') %>
  encoding: utf8mb4
  charset: utf8mb4
  collation: utf8mb4_general_ci
  pool: <%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
  username: root
  password: <%= ENV['DB_PASSWORD'] %>
  host: <%= ENV.fetch('DB_HOST', 'localhost') %>
  port: <%= ENV.fetch('DB_PORT', '3306') %>

development:
  <<: *default
  database: iroha_development

test:
  <<: *default
  database: iroha_test

staging:
  <<: *default
  database: iroha_staging
  username: iroha

production:
  <<: *default
  database: iroha_production
  username: iroha

db:create is succeeded because config[:database] is nil here.
https://github.com/rails-on-services/apartment/blob/v2.6.1/lib/apartment/adapters/mysql2_adapter.rb#L21

config looks like this:

{:adapter=>"mysql2",
 :encoding=>"utf8mb4",
 :charset=>"utf8mb4",
 :collation=>"utf8mb4_general_ci",
 :pool=>5,
 :username=>"root",
 :password=>"iroha",
 :host=>"db",
 :port=>3306,
 :database=>nil}

I'm not sure why config[:database] is nil.

@rpbaltazar
Copy link
Contributor

Just a status update, I am able to reproduce the issue locally. I should be able to fix it and release a new version still over the weekend

@rpbaltazar
Copy link
Contributor

@fsateler this bug seems to have been introduced when we merged the Apartment initializer changes. Do you mind helping me taking a look at it?

@fsateler
Copy link
Contributor

fsateler commented Jun 8, 2020

Sure, I'll take a look.

@rpbaltazar rpbaltazar added the bug Something isn't working label Jun 12, 2020
@rpbaltazar rpbaltazar linked a pull request Jun 24, 2020 that will close this issue
rpbaltazar added a commit that referenced this issue Jun 25, 2020
rpbaltazar added a commit that referenced this issue Jun 25, 2020
rpbaltazar added a commit that referenced this issue Jun 25, 2020
rpbaltazar added a commit that referenced this issue Jun 25, 2020
rpbaltazar added a commit that referenced this issue Jun 25, 2020
rpbaltazar added a commit that referenced this issue Jun 25, 2020
rpbaltazar added a commit that referenced this issue Jun 25, 2020
rpbaltazar added a commit that referenced this issue Jun 25, 2020
rpbaltazar added a commit that referenced this issue Jun 26, 2020
Prepare Release - 2.7.0

# Enhancements

- [Resolves #70] Rake tasks define methods on main - #75
- Add database and schema to active record log. Configurable, defaults to false to keep current behavior - #55

# Bugfixes

- [Fixes #61] Fix database create in mysql - #76

# Chores

- Remove depracated tld_length config option: tld_length was removed in influitive#309, this configuration option doesn't have any effect now. - #72
- Using [diffend.io proxy](https://diffend.io) to safely check required gems
- Added [story branch](https://github.com/story-branch/story_branch) to the configuration
- Using travis-ci to run rubocop as well, replacing github actions: github actions do not work in fork's PRs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
3 participants