ruby on rails - How do I suppress db creation when running a test on my model? -


i'm trying write simple test model , don't need database created. added below file in prevent database creation

myenv:myproject nataliab$ cat lib/tasks/db/test.rake rake.application.remove_task 'db:test:prepare'  namespace :db   namespace :test     task :prepare |t|       # rewrite task not don't want     end   end end 

but when run test, still below error

myenv:myproject nataliab$ rails test -b test/models/my_model_test.rb running via spring preloader in process 52504 /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:598:in `async_exec': pg::insufficientprivilege: error:  permission denied relation schema_migrations (activerecord::statementinvalid) : select "schema_migrations".* "schema_migrations"     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:598:in `block in exec_no_cache'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract_adapter.rb:590:in `block in log'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/notifications/instrumenter.rb:21:in `instrument'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract_adapter.rb:583:in `log'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:598:in `exec_no_cache'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:585:in `execute_and_clear'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:103:in `exec_query'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:377:in `select_prepared'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:39:in `select_all'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract/query_cache.rb:95:in `select_all'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/querying.rb:39:in `find_by_sql'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/relation.rb:702:in `exec_queries'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/relation.rb:583:in `load'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/relation.rb:260:in `records'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/relation/delegation.rb:38:in `map'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/migration.rb:1031:in `block in get_all_versions'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/deprecation/reporting.rb:36:in `silence'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/deprecation/instance_delegator.rb:20:in `silence'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/migration.rb:1029:in `get_all_versions'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/migration.rb:1043:in `needs_migration?'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/migration.rb:577:in `load_schema_if_pending!'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/migration.rb:592:in `block in maintain_test_schema!'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/migration.rb:823:in `suppress_messages'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/migration.rb:597:in `method_missing'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activerecord-5.0.5/lib/active_record/migration.rb:592:in `maintain_test_schema!'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.5/lib/rails/test_help.rb:14:in `<top (required)>'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `block in require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:259:in `load_dependency'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `require'     /users/nataliab/documents/workspace/myproject/test/test_helper.rb:3:in `<top (required)>'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `block in require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:259:in `load_dependency'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `require'     /users/nataliab/documents/workspace/myproject/test/models/my_model_test.rb:1:in `<top (required)>'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `block in require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:259:in `load_dependency'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.5/lib/rails/test_unit/runner.rb:48:in `block in load_tests'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.5/lib/rails/test_unit/runner.rb:48:in `each'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.5/lib/rails/test_unit/runner.rb:48:in `load_tests'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.5/lib/rails/test_unit/runner.rb:39:in `run'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.5/lib/rails/commands/test.rb:10:in `<top (required)>'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `block in require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:259:in `load_dependency'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.5/lib/rails/commands/commands_tasks.rb:138:in `require_command!'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.5/lib/rails/commands/commands_tasks.rb:95:in `test'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.5/lib/rails/commands/commands_tasks.rb:49:in `run_command!'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.5/lib/rails/commands.rb:18:in `<top (required)>'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:293:in `block in require'     /users/nataliab/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:259:in `load_dependency' 

what else need prevent database activities happening?

the activerecord tightly coupled db it's not feasible do. after work around requirement read migrations table, have work around fact db needed create model's attributes (it reads database columns that), after don't know what's in front of you, bet won't close done monkey-patching ar (i might wrong).

this way rails done.

what maybe have models inheriting ar (tableless models) doing whatever trying do, , use them in other "classic" models?

i, usually, when hitting such hard problem treat hint you're trying "go through wall head" (the wall framework here not designed handle this) , try think of different design (as suggested above: "tableless" models).

without more details of project hard suggest more concrete.


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -