【发布时间】:2014-09-10 02:38:06
【问题描述】:
我遇到了一个问题。我最近在 github 上克隆了一个应用程序并尝试使用 Rails 控制台启动它。当我输入其中一张表的名称时,我收到了这条消息。
Project
=> Project(Table doesn't exist)
这里是 Schema.rb 文件
ActiveRecord::Schema.define(version: 20120504152649) do
create_table "projects", force: true do |t|
t.string "name"
t.string "point_scale", default: "fibonacci"
t.date "start_date"
t.integer "iteration_start_day", default: 1
t.integer "iteration_length", default: 1
t.datetime "created_at"
t.datetime "updated_at"
t.integer "default_velocity", default: 10
end
create_table "projects_users", id: false, force: true do |t|
t.integer "project_id"
t.integer "user_id"
end
end
这里是项目迁移
class CreateProjects < ActiveRecord::Migration
def self.up
create_table :projects do |t|
t.string :name
t.string :point_scale, :default => 'fibonacci'
t.date :start_date
t.integer :iteration_start_day, :default => 1
t.integer :iteration_length, :default => 1
t.timestamps
end
end
def self.down
drop_table :projects
end
end
宝石文件
source 'http://rubygems.org'
ruby '2.1.0'
gem 'rails', '4.0.2'
gem 'sass-rails', '~> 4.0.1'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.1'
gem 'jquery-rails'
gem 'jbuilder', '~> 1.2'
gem 'ejs'
gem "compass-rails", "~> 1.1.2"
gem "devise", "~> 3.2.0"
gem 'transitions', '0.1.9', :require => ["transitions", "active_record/transitions"]
gem 'rails-i18n'
gem 'configuration'
gem 'rails-observers', '~> 0.1.2'
# gem 'protected_attributes'
gem 'jquery-ui-rails'
group :production do
gem 'pg'
# This helps with serving assets and log files on the heroku platform.
# See https://github.com/heroku/rails_12factor
# https://devcenter.heroku.com/articles/rails4#logging-and-assets
gem 'rails_12factor'
end
group :development, :test do
gem 'sqlite3'
gem 'rspec-rails'
gem 'factory_girl_rails'
gem 'jasmine', '~> 1.3.2'
gem 'capybara'
gem 'database_cleaner'
end
这是我的 database.yml 文件
# SQLite
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
我已经尝试过迁移数据库
rake db:migrate
=>undefined method `database_authenticatable' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x007fd7832ed418>/Users/richardhamilton/MyProjects/fulcrum/db/migrate/20110210082458_devise_create_users.rb:4:in `block in up'
我已经尝试过创建数据库
rake db:create
db/development.sqlite3 already exists
我已尝试加载架构
rake db:schema::load
rake aborted!
Don't know how to build task 'db:schema::load'
不知道为什么找不到表。
【问题讨论】:
-
我假设你在尝试启动任何东西之前运行了基本的 rake 命令?
-
我刚试过,得到了未定义的方法
database_authenticatable' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x007fd7832ed418>/Users/richardhamilton/MyProjects/fulcrum/db/migrate/20110210082458_devise_create_users.rb:4:inblock in up' -
你试过的“那个”是什么?耙分贝:创建? rake db:schema:load?哪一个?还是两者兼而有之?
-
耙分贝:迁移。我没有自己创建表格。我刚刚克隆了应用程序。然后我尝试迁移数据。我需要回滚或重置数据库吗?
-
您必须先创建数据库,然后再尝试加载它们。运行
rake db:create db:schema:load应该可以解决您的问题
标签: ruby-on-rails ruby database sqlite rails-console