[英]Rails 4 connect to remote MySQL database and pull Database structure for easy access
在我们的团队中,我们正在开发一个可通过不同平台访问的系统,例如Ruby on Rails网站,桌面Java应用程序,Android和iOS应用程序。
我们的中央MySQL数据库在服务器上远程运行,可以通过PHPMyAdmin(和ControlPanel)进行访问。
虽然其他平台之间的连接运行良好,但我很难将Rails应用程序连接到数据库。 我想复制数据库结构(表,索引,列),以便可以在Rails中访问数据库,就像访问本地创建的模型中的数据一样(例如Customer.find(name:“ Florian”)) )。
有没有办法做到这一点? 我尝试了几件事,例如更改了database.yml
文件,但是当我随后运行某些东西时,例如rails c
它显示:
/Users/florianpfisterer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mysql2-0.4.2/lib/mysql2.rb:31:in `require': dlopen(/Users/florianpfisterer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/mysql2-0.4.2/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.18.dylib
Referenced from: /Users/florianpfisterer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/mysql2-0.4.2/mysql2/mysql2.bundle
Reason: image not found - /Users/florianpfisterer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/mysql2-0.4.2/mysql2/mysql2.bundle (LoadError)
...
我的“ database.yml”文件:
development:
adapter: mysql2
encoding: utf8
host: <host-IP>
username: <username>
password: <password>
port: <port>
database: <database>
pool: 5
timeout: 5000
相同的模块也在test
和production
中。 在我的Gemfile中,我包括:
gem 'mysql2'
我正在运行Mac OS X 10.11.2 El Capitan,服务器是linux系统。 我的Rails版本是Rails 4.2.4
和Ruby ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
。
谢谢!
编辑:谢谢大家,终于修复了我的database.yml文件并运行rake db:schema:dump
做到了。 但是,如何将schema.rb转换为本地可用的ActiveRecord::Model
?
在您的Gemfile中使用它
gem 'mysql2', '~> 0.3.18'
config / database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: 5
socket: /var/run/mysqld/mysqld.sock
username: <%= ENV['DATABASE_USER'] %>
password: <%= ENV['DATABASE_PASSWORD'] %>
插入您的.bashrc
export DATABASE_USER='root'
export DATABASE_PASSWORD='123'
将库路径添加到您的.bash_profile文件:
MYSQL=/usr/local/mysql/bin
export PATH=$PATH:$MYSQL
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
问题不在于连接,而是与加载mysql本身有关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.