padrino g: невозможно загрузить такой файл - продолжение / плагины / схема
Новичок в Ruby, решил начать с фреймворка Padrino
следил за http://padrinorb.com/guides/getting-started/blog-tutorial/
Я создал свой проект, используя padrino g project blog-tutorial -e erb -c scss -s jquery -d sequel -a mysql2 -b
тогда я попытался сделать модель padrino g model post title:string body:text created_at:datetime
но вместо этого я получаю ошибку:
/home/user/.rvm/gems/ruby-2.4.1/gems/sequel-5.1.0/lib/sequel/model/base.rb:914:in `require': cannot load such file -- sequel/plugins/schema (LoadError)
from /home/user/.rvm/gems/ruby-2.4.1/gems/sequel-5.1.0/lib/sequel/model/base.rb:914:in `plugin_module'
from /home/user/.rvm/gems/ruby-2.4.1/gems/sequel-5.1.0/lib/sequel/model/base.rb:533:in `plugin'
from /home/user/Sites/blog-tutorial/config/database.rb:1:in `<top (required)>'
from /home/user/.rvm/gems/ruby-2.4.1/gems/padrino-core-0.14.1.1/lib/padrino-core/reloader.rb:91:in `require'
from /home/user/.rvm/gems/ruby-2.4.1/gems/padrino-core-0.14.1.1/lib/padrino-core/reloader.rb:91:in `safe_load'
from /home/user/.rvm/gems/ruby-2.4.1/gems/padrino-core-0.14.1.1/lib/padrino-core/loader.rb:154:in `block in require_dependencies'
from /home/user/.rvm/gems/ruby-2.4.1/gems/padrino-core-0.14.1.1/lib/padrino-core/loader.rb:152:in `each'
from /home/user/.rvm/gems/ruby-2.4.1/gems/padrino-core-0.14.1.1/lib/padrino-core/loader.rb:152:in `require_dependencies'
from /home/user/.rvm/gems/ruby-2.4.1/gems/padrino-core-0.14.1.1/lib/padrino-core/loader.rb:57:in `load!'
from /home/user/Sites/blog-tutorial/config/boot.rb:60:in `<top (required)>'
from /home/user/.rvm/gems/ruby-2.4.1/gems/padrino-gen-0.14.1.1/lib/padrino-gen/generators/cli.rb:26:in `require'
from /home/user/.rvm/gems/ruby-2.4.1/gems/padrino-gen-0.14.1.1/lib/padrino-gen/generators/cli.rb:26:in `load_boot'
from /home/user/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
from /home/user/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
from /home/user/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `block in invoke_all'
from /home/user/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `each'
from /home/user/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `map'
from /home/user/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `invoke_all'
from /home/user/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor/group.rb:232:in `dispatch'
from /home/user/.rvm/gems/ruby-2.4.1/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'
from /home/user/.rvm/gems/ruby-2.4.1/gems/padrino-gen-0.14.1.1/bin/padrino-gen:16:in `<main>'
не могу найти решение для этого (mysql-devel
установлено, mysql2
жемчужина тоже)
config/database.rb
имеет действительные учетные данные для соединения с БД, например mysql2://root:1@localhost/my_db
, Также пытался передать имя пользователя / пароль в параметрах
2 ответа
Драгоценный камень Sequel не может найти плагин схемы, но проект учебника блога, кажется, не нуждается в этом. Откройте файл blog-tutorial/config/database.rb и закомментируйте первую строку:
#Sequel::Model.plugin(:schema)
Sequel::Model.raise_on_save_failure = false # Do not throw exceptions on failure
Sequel::Model.db = case Padrino.env
when :development then Sequel.connect("sqlite://db/blog_tutorial_development.db", :loggers => [logger])
when :production then Sequel.connect("sqlite://db/blog_tutorial_production.db", :loggers => [logger])
when :test then Sequel.connect("sqlite://db/blog_tutorial_test.db", :loggers => [logger])
end
Я проверил весь проект, как это, за исключением части RSS-канала в конце, и все работало на меня.
Плагин схемы был объявлен устаревшим в Sequel 4.45.0 и удален в Sequel 5.0.0. Переключитесь на миграцию или вызов методов изменения схемы Sequel::Database непосредственно перед созданием классов модели.