我正在使用ruby on rails进行狂欢商务。但是我在执行这个命令时遇到错误“bundle exec rails g spree_fancy:install”。我做错了什么?请帮我。提前谢谢。
这是我的错误:
moududhassan@moududhassan-HP-ProBook-450-G1:~/SpreeProject/banglashop$ bundle exec rails g spree_fancy:install
append vendor/assets/javascripts/spree/frontend/all.js
insert vendor/assets/stylesheets/spree/frontend/all.css
run bundle exec rake railties:install:migrations FROM=spree_fancy from "."
Would you like to run the migrations now? [Y/n] n
Skipping rake db:migrate, don't forget to run it!
moududhassan@moududhassan-HP-ProBook-450-G1:~/SpreeProject/banglashop$ bundle exec rake db:migrate
[WARNING] You are not setting Devise.secret_key within your application!
You must set this in config/initializers/devise.rb. Here's an example:
Devise.secret_key = "ccbb0e6f45b7b7e4eea82ab3f24dab317816ad6b7bf3a2cd10b0879b52bbbfb83d0b2be34cdffb19672ada6fb8aa2d91f142"
== 20150214044609 AddSliderTaxonsAndApplyThem: migrating ======================
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedTable: ERROR: relation "spree_taxonomy_translations" does not exist
LINE 5: WHERE a.attrelid = '"spree_taxonomy_translati...
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"spree_taxonomy_translations"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
/home/moududhassan/SpreeProject/banglashop/db/migrate/20150214044609_add_slider_taxons_and_apply_them.spree_fancy.rb:4:in `up'
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "spree_taxonomy_translations" does not exist
LINE 5: WHERE a.attrelid = '"spree_taxonomy_translati...
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"spree_taxonomy_translations"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
/home/moududhassan/SpreeProject/banglashop/db/migrate/20150214044609_add_slider_taxons_and_apply_them.spree_fancy.rb:4:in `up'
PG::UndefinedTable: ERROR: relation "spree_taxonomy_translations" does not exist
LINE 5: WHERE a.attrelid = '"spree_taxonomy_translati...
^
/home/moududhassan/SpreeProject/banglashop/db/migrate/20150214044609_add_slider_taxons_and_apply_them.spree_fancy.rb:4:in `up'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
我的宝石文件是:
gem 'rails', '4.1.8'
gem 'pg'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'spring', group: :development
gem 'spree', git: 'https://github.com/spree/spree.git', branch: '2-4-stable'
gem 'spree_gateway', github: 'spree/spree_gateway', branch: '2-4-stable'
gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '2-4-stable'
gem 'spree_paypal_express', github: 'spree-contrib/better_spree_paypal_express', branch: '2-4-stable'
gem 'spree_i18n', github: 'spree-contrib/spree_i18n', branch: '2-4-stable'
gem 'spree_static_content', github: 'spree-contrib/spree_static_content', branch: '2-4-stable'
gem 'spree_fancy', :github => 'spree/spree_fancy', :branch => '2-4-stable'
gem 'spree_mail_settings', github: 'spree-contrib/spree_mail_settings', branch: '2-4-stable'
我的database.yml是:
default: &default
adapter: postgresql
encoding: unicode
database: hairdom_test
port: 5432
host: localhost
pool: 5
username: postgres
password: 007rajob
development:
<<: *default
database: hairdom_test
test:
<<: *default
database: hairdom_test
production:
<<: *default
database: hairdom_test
当我在本地主机上运行这个项目时,它会显示:
答案 0 :(得分:1)
您遇到的bundle exec rails g spree_fancy:install
错误是因为您的spree_i18n迁移未先运行。您可以这样说,因为错误消息引用了转换表。
您必须修复迁移尝试运行的顺序,以便spree_i18n在其他人之前运行,或者可以尝试将spree_i18n从Gemfile中注释掉,直到您运行迁移为止。
您在访问localhost:3000时看到的错误消息是待定迁移错误,因为它表示您需要运行rake db:migrate
来运行它们。根据您的具体情况,您可能还需要rake railties:install:migrations
才能运行rake db:migrate
,以确保我们将您的所有扩展程序迁移复制到您的应用程序中。