`
s8186255
  • 浏览: 87109 次
  • 性别: Icon_minigender_1
  • 来自: 新疆乌鲁木齐
社区版块
存档分类
最新评论

rails应用与多数据库的连接

阅读更多
rails与多数据库的连接有插件模式,也有原生模式,本文参考互联网资料,总结出来,并实际连接成功
1、配置database.yml
development:
  adapter: mysql
  encoding: utf8
  database: myapp
  username: root
  password:
  host: localhost

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: mysql
  encoding: utf8
  database: myapp
  username: root
  password:
  host: localhost

typo:
    adapter: mysql
    database: typo
    username: root
    password:
    host: localhost
说明:
1、typo是外部数据库,这是一个rails安装之后就存在的一个实例应用的库;
2、其他的development、test、production都是缺省的主数据库,这是缺省配置;
3、yml文件的书写方式非常严格,typo描述部分的下面各个参数必须采用tab的方式对齐,在netbeans中可以识别此格式,如果格式不对,将提示错误。

二、编写一个外部库的基础模型类
创建external_data.rb这个模型类
class ExternalData < ActiveRecord::Base
  self.abstract_class = true
  establish_connection :typo
end
说明:
1、self.abstract_class = true,表示这个模型类不会与库中的任何表有关系,也就是一个抽象的类。
2、establish_connection :typo,就是配置连接

三、编写一个具体的模型类
下面是typo库的表
+---------------------+
| Tables_in_typo      |
+---------------------+
| articles            |
| articles_categories |
| blacklist_patterns  |
| categories          |
| comments            |
| page_caches         |
| pages               |
| pings               |
| resources           |
| schema_info         |
| sessions            |
| settings            |
| sidebars            |
| trackbacks          |
| users               |
+---------------------+
我们随便选择一个如,pages,实现它的模型;
创建文件page.rb,内容如下:
class Page<ExternalData
end
说明:
1、关键在于page这个类是从刚才定义的抽象类ExternalData中继承而来,有一个好处是这个抽象类下衍生出来的各个模型类可以共用连接池,减少数据库连接的消耗。
2、这种采用继承的方式非常方便创建其他表对应的类,不需要在模型中重复书写establish_connection :typo这样的语句。比如对settings这个表,创建setting.rb模型类文件,代码如下:
class Setting<ExternalData
end
与缺省库中的模型操作起来一样,不一样的就是父类不同而已。

四、测试看看是否成功
ruby script/console
>> ExternalData
=> ExternalData(abstract)
>> Page
=> Page(id: integer, name: string, title: string, body: text, body_html: text, text_filter: string, user_id: integer, created_at: datetime, updated_at: datetime)
>> Setting
=> Setting(id: integer, name: string, value: string)

没有问题。







分享到:
评论
3 楼 cyberblue 2011-03-30  
文档上推荐的写法很麻烦

ActiveRecord::Base.establish_connection(
  :adapter  => "mysql",
  :host     => "localhost",
  :username => "myuser",
  :password => "mypass",
  :database => "somedatabase"
)


没想到这个方法还能这么用
2 楼 tw208 2011-03-30  
1 楼 boobmoom 2011-02-28  
This is helpful to me.
Thanks for your article.

相关推荐

    rails和mysql数据库连接中出现的问题以及解决办法

    然而,有时在尝试连接Rails应用到MySQL数据库时,可能会遇到一些问题。本篇文章将深入探讨这些常见问题及其解决方案。 首先,Rails与MySQL的连接问题可能源于配置不正确。在`config/database.yml`文件中,你需要...

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    综上所述,这个压缩包提供的Depot项目是一个典型的Rails应用实例,适合初学者了解Rails框架的基本结构和敏捷开发流程。通过研究源码,开发者可以学习到如何组织代码、设置数据库、编写控制器逻辑、创建视图模板以及...

    Ruby-ApartmentRack和Rails应用的数据库多租户

    "Ruby-ApartmentRack和Rails应用的数据库多租户"这一主题旨在探讨如何使用Apartment gem来实现这样的功能。Apartment是Ruby社区中广泛使用的库,它为Rack(包括Rails)应用提供了简单的多租户支持。 Apartment gem...

    Ruby on Rails安装及MySQL数据库配置指南

    Ruby on Rails 安装及 MySQL 数据库配置指南 本文详细介绍了 Ruby on Rails 的安装步骤,以及 MySQL 数据库的配置方法,并提供了一些官方阅读资源。 一、Ruby on Rails 安装 Ruby on Rails 的安装可以分为以下几...

    Ruby-Multiverse让Rails支持多数据库

    安装完成后,你可以在配置文件(config/database.yml)中定义多个数据库连接。例如,你可以创建一个名为`secondary`的数据库,用于存放不常访问或者大型的数据表。 ```yaml development: primary: adapter: ...

    Ruby on rails 数据库详细配置

    配置完成后,Rails应用程序将能够根据这些参数与数据库建立连接,并执行CRUD(创建、读取、更新、删除)操作。Rails的ActiveRecord库提供了方便的数据模型抽象,使得开发者可以使用Ruby代码轻松操作数据库表。 总的...

    《web开发敏捷之道 应用rails进行敏捷web开发》(第一版)的depot源代码

    4. **路由**:Rails的路由系统是连接URL与控制器动作的桥梁,定义了URL模式到应用程序内部操作的映射。 5. **生成器**:Rails提供了许多命令行工具,如`rails generate`,用于快速创建模型、控制器、迁移等,加速...

    Ubuntu 11.04安装Ruby on rails 连接MySQL数据库.pdf

    为了使Rails应用能够与MySQL数据库交互,需要安装MySQL的Ruby驱动: ```bash sudo gem install mysql2 ``` 此外,为了支持图像处理功能,还需安装ImageMagick库: ```bash sudo apt-get install librmagick-dev `...

    11种连接数据库的方法

    数据库是存储和管理数据的核心工具,对于任何软件应用而言,高效稳定地连接数据库至关重要。本文将详细介绍11种常见...同时,随着技术的发展,如ORM的普及,数据库连接的方式也在不断进化,为开发者带来了更多的便利。

    Ruby-SecondBase为Rails提供双数据库无缝相集成

    创建数据库时,SecondBase允许你在配置文件中定义额外的数据库连接,然后在模型中声明使用哪个数据库。这样,你可以根据业务需求,将不同类型的数据分散存储在不同的数据库中,如用户数据、交易数据等,以实现更好的...

    Ruby-GemExceptionTrack捕捉Rails应用运行期的异常并存储到数据库

    7. **配置与集成**:在Rails应用中使用ExceptionTrack,需要进行相应的配置,如设置数据库连接、启用或禁用异常捕获等。 8. **版本控制**:提到"master"分支,表明项目使用了版本控制系统,如Git,用于代码版本管理...

    Ruby+on+Rails快速Web应用开发实战.pdf

    - **MySQL的介绍和安装**:文档提到了MySQL数据库,这是Rails应用中常用的一个关系型数据库管理系统。介绍了MySQL的下载地址`***`。 - **数据库配置**:在Rails中,数据库的配置通常涉及模型的生成,以及在配置文件...

    rails3.1安装与mysql配置 windows

    配置数据库连接信息是在Rails应用的`config/database.yml`文件中完成的。根据你的数据库设置,创建一个适配器为`mysql2`的环境配置,包括主机名(通常是localhost)、用户名、密码以及数据库名称。 最后,初始化...

    Rails应用程序样本AWSOpsWorksRailsDemoApp.zip

    开发者可以通过学习这个示例,掌握如何配置Rails应用的环境变量、数据库连接、部署策略等关键环节。 **opsworks-demo-rails-photo-share-app** 从压缩包的文件名来看,这个示例应用可能是关于照片分享的。在Rails...

    rails3.1.0解决数据库取出来的信息编码为utf-8

    在Rails应用中,数据的正确编码对于保证国际化和本地化是非常重要的,特别是当处理多语言内容时。 Rails框架默认使用UTF-8编码,但有时数据库(如MySQL、PostgreSQL等)的默认配置可能不一致,或者导入的数据源编码...

    rails_multisite:Rails应用的多租户

    Rails多站点这个gem为Rails应用程序提供了多数据库支持。 使用其中间件,您可以对应用程序进行分区,以便每个主机名都有自己的数据库。 它提供了一系列用于处理多个数据库的帮助程序,以及一些用于处理这些数据库的...

    ruby on rails与MySql的环境配置——支持rails 2.3.5以上版本

    在开发基于Web的应用程序时,Ruby on Rails(简称Rails)框架和MySQL数据库的结合是常见的选择。本文将详细介绍如何在Windows环境下配置Ruby on Rails以支持Rails 2.3.5及以上版本,并与MySQL进行无缝对接。 首先,...

    rails 部署 nginx

    在部署Rails应用时,还需要考虑性能优化,比如启用HTTP缓存,调整Nginx的连接超时时间,配置Rails应用的线程池大小,以及使用如 unicorn 或 puma 这样的多进程或多线程服务器。 7. **部署工具**: 为了自动化部署...

    Rails 指南

    本文介绍如何开始使用Ruby on Rails,读完本文后,您将...如何安装Rails,创建Rails应用,如何连接数据库; Rails应用的基本文件结构; MVC(模型,视图,控制器)和REST架构的基本原理; 如何快速生成Rails应用骨架;

    ruby on rails在线考试系统

    10. 性能优化:Rails应用可以通过缓存、数据库索引、数据库连接池、延迟加载等技术提升性能。在线考试系统可能会大量使用缓存来减少数据库查询,提高响应速度。 以上是关于“ruby on rails在线考试系统”的主要知识...

Global site tag (gtag.js) - Google Analytics