- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在运行 Rails 服务器时遇到问题。我在初始化程序中设置了 abstract_mysql2_adapters,包括:
class ActiveRecord::ConnectionAdapters::Mysql2Adapter
NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY"
end
它解决了我的 rake db:migrate 问题,但是当我尝试运行我的 Rails 服务器时,它给了我这个错误。
C:/Users/XXXX/Documents/RoRCmS/simple_cms/config/initializers/abstract_mysql2_adapter.rb:2:in
<class:Mysql2Adapter>': uninitialized constant ActiveRecord::ConnectionAda
' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/engine.rb:609:in
pters::Mysql2Adapter::NATIVE_DATABASE_TYPES (NameError)
from C:/Users/John/Documents/RoRCmS/simple_cms/config/initializers/abstract_mysql2_adapter.rb:1:inblock (2 levels) in <class:Engine>'
each' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/engine.rb:608:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/engine.rb:608:inblock in <class:Engine>'
instance_exec' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/initializable.rb:30:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/initializable.rb:30:inrun'
block in run_initializers' from C:/Ruby23-x64/lib/ruby/2.3.0/tsort.rb:228:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/initializable.rb:55:inblock in tsort_each'
block (2 levels) in each_strongly_connected_component' from C:/Ruby23-x64/lib/ruby/2.3.0/tsort.rb:431:in
from C:/Ruby23-x64/lib/ruby/2.3.0/tsort.rb:350:ineach_strongly_connected_component_from'
block in each_strongly_connected_component' from C:/Ruby23-x64/lib/ruby/2.3.0/tsort.rb:347:in
from C:/Ruby23-x64/lib/ruby/2.3.0/tsort.rb:349:ineach'
call' from C:/Ruby23-x64/lib/ruby/2.3.0/tsort.rb:347:in
from C:/Ruby23-x64/lib/ruby/2.3.0/tsort.rb:347:ineach_strongly_connected_component'
tsort_each' from C:/Ruby23-x64/lib/ruby/2.3.0/tsort.rb:205:in
from C:/Ruby23-x64/lib/ruby/2.3.0/tsort.rb:226:intsort_each'
run_initializers' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/application.rb:215:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/initializable.rb:54:ininitialize!'
method_missing' from C:/Users/John/Documents/RoRCmS/simple_cms/config/environment.rb:5:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/railtie/configurable.rb:30:in<top (required)>'
require' from C:/Users/John/Documents/RoRCmS/simple_cms/config.ru:3:in
from C:/Users/John/Documents/RoRCmS/simple_cms/config.ru:3:inblock in <main>'
instance_eval' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rack-1.5.5/lib/rack/builder.rb:55:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rack-1.5.5/lib/rack/builder.rb:55:ininitialize'
new' from C:/Users/John/Documents/RoRCmS/simple_cms/config.ru:in
from C:/Users/John/Documents/RoRCmS/simple_cms/config.ru:in<main>'
eval' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rack-1.5.5/lib/rack/builder.rb:49:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rack-1.5.5/lib/rack/builder.rb:49:innew_from_string'
parse_file' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rack-1.5.5/lib/rack/server.rb:277:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rack-1.5.5/lib/rack/builder.rb:40:inbuild_app_and_options_from_config'
app' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/commands/server.rb:48:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rack-1.5.5/lib/rack/server.rb:199:inapp'
wrapped_app' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/commands/server.rb:75:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rack-1.5.5/lib/rack/server.rb:314:instart'
block in ' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/commands.rb:78:intap'
' from bin/rails:4:in
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-4.0.0/lib/rails/commands.rb:73:inrequire'
'
from bin/rails:4:in
我现在真的需要解决这个问题..谢谢你们。
最佳答案
我是这样解决的。使用 mysql -u username -p database_name < file.sql
将遗留 sql 转储文件导入 MySQL 后,我继续使用 bin/rake db:migrate
执行迁移, 但我遇到了错误 Mysql2::Error: All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead
.
所以我尝试了与您相同的猴子补丁,正如用户 pjg 在此处建议的那样 https://github.com/rails/rails/pull/13247#issuecomment-32425844 , 但后来我遇到了你的错误
uninitialized constant ActiveRecord::ConnectionAdapters::Mysql2Adapter::NATIVE_DATABASE_TYPES (NameError)
我听从了用户 John Geliberte 的建议并将我的 Gemfile 更新为 gem 'activerecord-native_db_types_override'
并检查我是否也有 gem 'mysql2'
(不是导致其他错误的'activerecord-mysql2-adapter')并运行bundle install
.
我使用了与 activerecord-native_db_types_override gem 相关的文档并为 Rails ActiveRecord library file 中提到的 NATIVE_DATABASE_TYPES 应用了属性对于 abstract_mysql_adapter,我做了以下更改:
我创建了 config/initializers/abstract_mysql2_adapter.rb 并添加了:
require 'active_record/connection_adapters/mysql2_adapter'
NativeDbTypesOverride.configure({
ActiveRecord::ConnectionAdapters::Mysql2Adapter => {
primary_key: "int(11) auto_increment PRIMARY KEY"
}
})
我创建了 config/environment.rb 并添加以下内容来加载猴子补丁:
require File.expand_path('../initializers/abstract_mysql2_adapter.rb', __FILE__)
我检查了 config/database.yml 是否包含我想使用的数据库连接的“适配器:mysql2”。
然后我跑了bin/rake db:migrate
并且它成功执行了迁移。
我做了一个pull request到 ActiveRecord Native Database Types Override Gem 的文档。
不过,从 MySQL 5.7 降级到 5.5 要容易得多。
我的系统:
mysql -V
是mysql Ver 14.14 Distrib 5.7.13
rails -v
是4.2.4
ruby -v
是ruby 2.3.0p0
关于ruby-on-rails - 未初始化的常量 ActiveRecord::ConnectionAdapters::Mysql2Adapter::NATIVE_DATABASE_TYPES (NameError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37315546/
我目前正在开发一个 sinatra 应用程序,我在 postgresql 与 sinatra 的连接方面遇到了问题,我尝试执行此命令: rake db:create 创建数据库但它抛出此错误。 C:\
我是 Ruby on Rails 的新手,但我已经学习了一些教程并且对自己的方法有了一些了解。我已经生成了一些脚手架并将数据插入到 MySql 数据库中。 导航到 index.html.erb 时,我
当我尝试运行迁移时,我收到以下信息: NoMethodError: undefined method `column' for # 这是迁移代码: class CreateAdvertisement
我已经使用 postgres 数据库创建了一个 Rails 应用程序。我正在使用 postgis 扩展进行地理查询。该应用程序在我的开发(本地)机器上成功运行,但是在我运行 heroku run ra
我有一个 Rails 5.1 应用程序,它使用 Devise 处理我的 User 模型的身份验证。这个应用程序有一个 Oracle 数据库后端,需要在执行任何查询之前为登录用户设置一个系统上下文变量,
生成了 rails 4.2.0 应用程序并添加了 activerecord-postgis-adapter 并相应地编辑了 database.yml 文件。 但是现在当我这样做时rake db:cre
我在运行 Rails 服务器时遇到问题。我在初始化程序中设置了 abstract_mysql2_adapters,包括: class ActiveRecord::ConnectionAdapters:
有两个应用程序。其中一个应用程序正在使用 rails 4.1.2。另一个应用程序正在使用 rails 5.0.1。以下是 rails 5 应用程序的工作方式:它检查用户是否已登录: 如果用户已登录:那
我目前正在将一个 Rails 项目从 v5.2.3 升级到 v6.0。我正在关注 guide升级 rails 。但我只停留在第一步。一旦我更改了 gemfile 中的 rails 版本并更新了 rai
我在基于测验的小型应用程序中使用 Active Admin gem。但是当我执行 耙数据库:迁移它给了我错误。以下是该命令的跟踪: $ rake db:migrate RAILS_ENV=produc
我们正在升级 Sinatra来自ActiveRecord 4的申请到 ActiveRecord 5。以前我们有这一行: 使用 ActiveRecord::ConnectionAdapters::Con
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我们正在从 5.2 升级我们的 rails 应用程序至 6.0.1 ,现在每当我们运行 db:schema:load --trace我们得到以下错误。 ** Invoke db:schema:load
当我尝试通过 Rails 控制台更新 Puzzle 对象的 User 对象时,我得到一个数据库 ROLLBACK 并在开发中出现此错误: 类型错误:无法转换 ActiveRecord::Connect
我是一名优秀的程序员,十分优秀!