Defect #8182
closedSQLite3::CantOpenException: unable to open database file: DROP TABLE "issue_histories"
0%
Description
Checked out current head...
$ svn co http://redmine.rubyforge.org/svn/trunk redmine ...snip... U redmine Checked out revision 5504.
Ruby version:
$ ruby --version ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
Installed gems:
$ gem list *** LOCAL GEMS *** actionmailer (2.3.11, 2.3.5) actionpack (2.3.11, 2.3.5) activerecord (2.3.11, 2.3.5) activeresource (2.3.11, 2.3.5) activesupport (2.3.11, 2.3.5) cgi_multipart_eof_fix (2.5.0) daemons (1.1.2) fastthread (1.0.7) gem_plugin (0.2.3) i18n (0.4.2) mongrel (1.1.5) rack (1.1.2, 1.0.1) rails (2.3.11, 2.3.5) rake (0.8.7) rubygems-update (1.4.2) sqlite3 (1.3.3)
database.yml contents:
$ cat config/database.yml production: adapter: sqlite3 database: db/prod.db development: adapter: sqlite3 database: db/dev.db test: adapter: sqlite3 database: db/test.db
Rails environment:
$ RAILS_ENV=production ruby script/about Storing outgoing emails configuration in config/email.yml is deprecated. You should now store it in config/configuration.yml using the email_delivery setting. About your application's environment Ruby version 1.8.7 (i386-cygwin) RubyGems version 1.4.2 Rack version 1.1.2 Rails version 2.3.11 Active Record version 2.3.11 Active Resource version 2.3.11 Action Mailer version 2.3.11 Active Support version 2.3.11 Application root /c/www/redmine Environment production Database adapter sqlite3 Database schema version 0
Install step ok:
$ rake generate_session_store (in /c/www/redmine)
Install step bombs:
$ RAILS_ENV=production rake db:migrate --trace (in /c/www/redmine) ** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:migrate == Setup: migrating ========================================================== -- create_table("attachments", {:force=>true}) -> 0.0060s -- create_table("auth_sources", {:force=>true}) -> 0.0020s -- create_table("custom_fields", {:force=>true}) -> 0.0030s -- create_table("custom_fields_projects", {:force=>true, :id=>false}) -> 0.0020s -- create_table("custom_fields_trackers", {:force=>true, :id=>false}) -> 0.0010s -- create_table("custom_values", {:force=>true}) -> 0.0020s -- create_table("documents", {:force=>true}) -> 0.0020s -- add_index("documents", ["project_id"], {:name=>"documents_project_id"}) -> 0.0000s -- create_table("enumerations", {:force=>true}) -> 0.0020s -- create_table("issue_categories", {:force=>true}) -> 0.0020s -- add_index("issue_categories", ["project_id"], {:name=>"issue_categories_project_id"}) -> 0.0010s -- create_table("issue_histories", {:force=>true}) -> 0.0030s -- add_index("issue_histories", ["issue_id"], {:name=>"issue_histories_issue_id"}) -> 0.0000s -- create_table("issue_statuses", {:force=>true}) -> 0.0010s -- create_table("issues", {:force=>true}) -> 0.0040s -- add_index("issues", ["project_id"], {:name=>"issues_project_id"}) -> 0.0010s -- create_table("members", {:force=>true}) -> 0.0020s -- create_table("news", {:force=>true}) -> 0.0030s -- add_index("news", ["project_id"], {:name=>"news_project_id"}) -> 0.0000s -- create_table("permissions", {:force=>true}) -> 0.0020s -- create_table("permissions_roles", {:force=>true, :id=>false}) -> 0.0020s -- add_index("permissions_roles", ["role_id"], {:name=>"permissions_roles_role_id"}) -> 0.0010s -- create_table("projects", {:force=>true}) -> 0.0030s -- create_table("roles", {:force=>true}) -> 0.0000s -- create_table("tokens", {:force=>true}) -> 0.0030s -- create_table("trackers", {:force=>true}) -> 0.0020s -- create_table("users", {:force=>true}) -> 0.0040s -- create_table("versions", {:force=>true}) -> 0.0050s -- add_index("versions", ["project_id"], {:name=>"versions_project_id"}) -> 0.0010s -- create_table("workflows", {:force=>true}) -> 0.0030s == Setup: migrated (0.1540s) ================================================= == IssueMove: migrating ====================================================== == IssueMove: migrated (0.0070s) ============================================= == IssueAddNote: migrating =================================================== == IssueAddNote: migrated (0.0070s) ========================================== == ExportPdf: migrating ====================================================== == ExportPdf: migrated (0.0090s) ============================================= == IssueStartDate: migrating ================================================= -- add_column(:issues, :start_date, :date) -> 0.0030s -- add_column(:issues, :done_ratio, :integer, {:null=>false, :default=>0}) -> 0.0010s == IssueStartDate: migrated (0.0050s) ======================================== == CalendarAndActivity: migrating ============================================ == CalendarAndActivity: migrated (0.0200s) =================================== == CreateJournals: migrating ================================================= -- create_table(:journals, {:force=>true}) -> 0.0080s -- create_table(:journal_details, {:force=>true}) -> 0.0030s -- add_index("journals", ["journalized_id", "journalized_type"], {:name=>"journals_journalized_id"}) -> 0.0010s -- add_index("journal_details", ["journal_id"], {:name=>"journal_details_journal_id"}) -> 0.0010s -- drop_table(:issue_histories) rake aborted! An error has occurred, this and all later migrations canceled: SQLite3::CantOpenException: unable to open database file: DROP TABLE "issue_histories" /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract_adapter.rb:227:in `log' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/sqlite_adapter.rb:172:in `execute' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/sqlite_adapter.rb:418:in `catch_schema_changes' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/sqlite_adapter.rb:172:in `execute' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/schema_statements.rb:182:in `drop_table' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:352:in `send' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:352:in `method_missing' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:328:in `say_with_time' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:328:in `say_with_time' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:348:in `method_missing' ./db/migrate//007_create_journals.rb:37:in `up_without_benchmarks' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:282:in `send' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:282:in `migrate' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:282:in `migrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:365:in `__send__' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:365:in `migrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:491:in `migrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:565:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:565:in `ddl_transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/transactions.rb:182:in `transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:565:in `ddl_transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:490:in `migrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:477:in `each' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:477:in `migrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:401:in `up' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:383:in `migrate' /usr/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/tasks/databases.rake:112 /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain' /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31 /usr/bin/rake:19:in `load' /usr/bin/rake:19
Test of sqlite3-ruby installation...
$ cat testsql.rb require 'rubygems' require 'sqlite3' require 'pp' db = SQLite3::Database.new( "test.db" ) db.execute("create table t1(a, b, c)") sql = <<SQL insert into t1 values ( 'one', 'two', 'foo' ); insert into t1 values ( 'three', 'four', 'bar' ); insert into t1 values ( 'five', 'six', 'baz' ); SQL db.execute_batch( sql ) rows = db.execute( "select * from t1" ) pp rows db.execute("create table t2(a, b)") db.execute("insert into t2 select a,b from t1") db.execute("drop table t1") rows = db.execute2( "select * from t2" ) pp rows $ ruby testsql.rb [["one", "two", "foo"], ["three", "four", "bar"], ["five", "six", "baz"]] [["a", "b"], ["one", "two"], ["three", "four"], ["five", "six"]] $ sqlite3 test.db SQLite version 3.7.3 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> sqlite> .tables t2 sqlite> .dump t2 PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE t2(a, b); INSERT INTO "t2" VALUES('one','two'); INSERT INTO "t2" VALUES('three','four'); INSERT INTO "t2" VALUES('five','six'); COMMIT;
See also issue #8178
Related issues
Updated by Etienne Massip about 14 years ago
Do Redmine instance server running profile have write / delete access to your prod.db
file and to the db
directory containing the file ?
Updated by Jon Lambert about 14 years ago
There is no running server yet.
I have full access access.
I'm running the "RAILS_ENV=production rake db:migrate --trace" command.
Updated by Etienne Massip about 14 years ago
Truly odd ; if you don't want to loose time trying to solve this issue, simply comment the drop :issues_histories
line in file 007_create_journals.rb
and drop the table by hand.
Updated by Jon Lambert almost 14 years ago
... == CreateSettings: migrating ================================================= -- create_table(:settings, {:force=>true}) -> 0.0000s == CreateSettings: migrated (0.0000s) ======================================== == SetDocAndFilesNotifications: migrating ==================================== rake aborted! An error has occurred, this and all later migrations canceled: SQLite3::CantOpenException: unable to open database file: UPDATE "permissions" SET "mail_option" = 't' WHERE "id" = 34 /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract_adapter.rb:227:in `log' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/sqlite_adapter.rb:172:in `execute' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/sqlite_adapter.rb:418:in `catch_schema_changes' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/sqlite_adapter.rb:172:in `execute' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/database_statements.rb:265:in `update_sql' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/sqlite_adapter.rb:176:in `update_sql' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/database_statements.rb:49:in `update_without_query_dirty' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/query_cache.rb:19:in `update' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/base.rb:2936:in `update_without_lock' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/locking/optimistic.rb:81:in `update_without_dirty' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/dirty.rb:146:in `update_without_timestamps' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/timestamp.rb:64:in `update_without_callbacks' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/callbacks.rb:282:in `update' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/base.rb:2927:in `create_or_update_without_callbacks' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/callbacks.rb:250:in `create_or_update' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/base.rb:2577:in `save_without_validation' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/validations.rb:1090:in `save_without_dirty' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/dirty.rb:79:in `save_without_transactions' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/transactions.rb:229:in `send' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/transactions.rb:229:in `with_transaction_returning_status' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/transactions.rb:182:in `transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/transactions.rb:228:in `with_transaction_returning_status' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/transactions.rb:196:in `save' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/transactions.rb:208:in `rollback_active_record_state!' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/transactions.rb:196:in `save' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/base.rb:2661:in `update_attribute' ./db/migrate//018_set_doc_and_files_notifications.rb:7:in `up_without_benchmarks' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:282:in `send' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:282:in `migrate' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:282:in `migrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:365:in `__send__' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:365:in `migrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:491:in `migrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:565:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:565:in `ddl_transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/transactions.rb:182:in `transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:565:in `ddl_transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:490:in `migrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:477:in `each' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:477:in `migrate' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:401:in `up' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/migration.rb:383:in `migrate' /usr/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/tasks/databases.rake:112 /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain' /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31 /usr/bin/rake:19:in `load' /usr/bin/rake:19
It gets further and bombs in step 018.
Updated by Etienne Massip almost 14 years ago
Does your permissions
table has a mail_option
column ?
Updated by Jon Lambert almost 14 years ago
$ sqlite3 prod.db sqlite> .schema permissions CREATE TABLE "permissions" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "controller" varchar(30) DEFAULT '' NOT NULL, "action" varchar(30) DEFAULT '' NOT NULL, "description" varchar(60) DEFAULT '' NOT NULL, "is_public" boolean DEFAULT 'f' NOT NULL, "sort" integer DEFAULT 0 NOT NULL, "mail_option" boolean DEFAULT 'f' NOT NULL, "mail_enabled" boolean DEFAULT 'f' NOT NULL);
Yes.
Updated by Etienne Massip almost 14 years ago
Very weird issue, still looks like permission related, maybe something about the transaction journal created during the migration.
Could you run your migrations as su ?
Updated by Marius BĂLTEANU over 6 years ago
- Status changed from New to Closed
- Resolution set to Invalid
I'm closing this ticket because is very old and almost sure obsolete. Please reopen if you experience the same issue on the latest Redmine versions.