【问题标题】:Can't generate schema.rb file with ActiveRecord无法使用 ActiveRecord 生成 schema.rb 文件
【发布时间】:2021-06-16 09:02:02
【问题描述】:

当我运行“rake db:migrate”时,它不会生成 schema.rb 文件。我已经运行了几乎每个 rake 命令,但它还没有改变任何东西。请问有人吗?我对此还是很陌生。 以下是一些可能有用的文件:

我的宝石文件:


source "http://rubygems.org"

gem "sinatra"
gem "activerecord", :require => "active_record"
gem "sinatra-activerecord", :require => "sinatra/activerecord"
gem "rake"
gem "require_all"
gem "sqlite3"
gem "thin"
gem "shotgun"
gem "pry"
gem "bcrypt"
gem "tux"

group :test do
  gem "rspec"
  gem "capybara"
  gem "rack-test"
  gem "database_cleaner", git: "https://github.com/bmabey/database_cleaner.git"
end

我创建的迁移之一:

class CreateUsers < ActiveRecord::Migration
  def change
    t.string :name
    t.string :email
    t.string :password_digest
  end
end

环境.rb:

ENV['SINATRA_ENV'] ||= "development"

require 'bundler/setup'
Bundler.require(:default, ENV['SINATRA_ENV'])

ActiveRecord::Base.establish_connection(
  :adapter => "sqlite3",
  :database => "db/#{ENV['SINATRA_ENV']}.sqlite"
)

require './app/controllers/application_controller'
require_all 'app'

【问题讨论】:

  • 你的 Ruby 版本是什么?您可能还必须据此指定您的 ActiveRecord 版本。
  • @RonyB。我正在使用 Ruby 2.7.1

标签: ruby activerecord migration sinatra


【解决方案1】:

尝试在 Gemfile 上将 ActiveRecord 指定为 5.2 版本,因为您使用的是 Ruby 版本。此外,请确保将其包含在生成的迁移中。

所以你的情况:

class CreateUsers < ActiveRecord::Migration[5.2]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2012-04-17
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2020-09-12
    相关资源
    最近更新 更多