2012-02-21 33 views
7

Tôi có một vấn đề rất khó chịu với di cư của tôi.rake hủy bỏ uninitialized liên tục "Máy tính"

Đầu tiên ERRORMESSAGE:

bundle exec rake db:migrate --trace 
(in /home/myhomefolder/msdnaa) 
** Invoke db:migrate (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute db:migrate 
rake aborted! 
An error has occurred, all later migrations canceled: 

uninitialized constant Computers 

Bây giờ tôi có giả định rằng một Cập nhật được thực hiện bởi một trong những quản trị viên của chúng tôi là lý do tại sao điều này xảy ra mỗi lần. Ngay cả khi không có di chuyển nào cả!

Những gì tôi đã thực hiện (ngoài tìm kiếm trên Stack Overflow cho giải pháp) là grep mỗi tệp duy nhất cho "Máy tính". Tất nhiên có một số tệp có chứa từ này và tôi đã kiểm tra chúng cho lỗi cú pháp và các công cụ thông thường như thiếu ":". Sau đó, tôi đã nhờ một người bạn giúp đỡ (anh ấy có tay nghề cao hơn nhiều so với tôi) và anh ấy không có đầu mối, mọi thứ đều đúng.

Tôi đang sử dụng phiên bản Ruby cũ (1.8.7) và Rails (3.0.9), nhưng tôi không có quyền cập nhật trên Máy chủ của mình, vì vậy tôi phải giải quyết nó. Và có, tôi đã yêu cầu quản trị viên cập nhật lên 1.9.x và 3.1.x, nhưng điều đó không thể là lỗi vì nó hoạt động tốt vào tuần trước. Vì vậy, nó là một trong những lỗi mà nó NÊN làm việc, nhưng nó không và tôi đặt cược giải pháp là dễ dàng như uống nước, nhưng tôi không nhìn thấy nó!

Mọi đề xuất?

EDIT: Đây ist các --trace:

/var/lib/gems/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/meth    ods.rb:113:in `constantize' 
/var/lib/gems/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/meth    ods.rb:112:in `each' 
/var/lib/gems/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/meth    ods.rb:112:in `constantize' 
/var/lib/gems/1.8/gems/activesupport-3.0.9/lib/active_support/core_ext/strin    g/inflections.rb:43:in `constantize' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:407    :in `load_migration' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:402    :in `migration' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:397    :in `migrate' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:539    :in `migrate' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:615    :in `call' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:615    :in `ddl_transaction' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:538    :in `migrate' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:525    :in `each' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:525    :in `migrate' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:435    :in `up' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:417    :in `migrate' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/railties/databas    es.rake:142 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in `execute' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:158:in `invoke_with_call_    chain' 
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_    chain' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_tas    k' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_e    xception_handling' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:62:in `run' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_e    xception_handling' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/var/lib/gems/1.8/gems/rake-0.9.2/bin/rake:32 
/var/lib/gems/1.8/bin/rake:19:in `load' 
/var/lib/gems/1.8/bin/rake:19 
Tasks: TOP => db:migrate 
+1

Phần còn lại của thông báo lỗi là gì? Bạn sử dụng tùy chọn '--trace' nhưng bạn đã cắt theo dõi ngăn xếp ra – Gareth

+0

Đã thêm! Xem bài viết ... – ProblemChild

Trả lời

22

Tôi đoán là bạn vừa thêm di chuyển được gọi là 20120221123456_computers.rb, và trong đó, bạn có ...

class SomeNameThatsNotComputers < ActiveRecord::Migration 
    ... 

Khi Rails thực hiện di chuyển, nó dự kiến ​​thực thi tệp, xác định lớp và sau đó khởi tạo lớp và gọi #up hoặC#down trên cá thể lớp đó. Làm thế nào để Rails biết những gì lớp để nhanh chóng? Nó phải tương ứng với một phần của tên tệp sau tiền tố số và dấu gạch dưới, vì vậy đối với tên tệp như 20120221123456_computers.rb, tên lớp phải là Máy tính.

+0

Đó là ... kinda sorta! Những gì tôi quên nói trong tất cả sự thất vọng của tôi là dự án này đã được chuyển từ Windows sang Linux. Vì vậy, NÊN là vấn đề NHƯNG tôi đã không chú ý đến tên lớp (nhờ gợi ý). Lớp thực sự được đặt tên là CreateComputers ... những gì không có ý nghĩa gì cả, nhưng thay đổi tên thành Máy tính đã khắc phục vấn đề ... như tôi đã nói: Dễ dàng như nước uống! Cảm ơn rất nhiều! – ProblemChild

+0

Ồ, KHÔNG PHẢI là vấn đề của người phối ngẫu;) – ProblemChild

+0

Ah vâng, nó ném tôi bởi vì bạn đã đề cập trong câu hỏi của bạn: "Ngay cả khi không có di chuyển ở tất cả". – Gareth

0

Như bạn nói grep bảo sự tồn tại của "Máy tính" đó là vấn đề. Nó có nghĩa là Máy tính không được định nghĩa nhưng được sử dụng. di chuyển tải môi trường ứng dụng đầu tiên và thời gian không thành công bcoz Máy vi tính không được khởi tạo

Các vấn đề liên quan