最近做的工程要修改成两个数据库的,一个测试数据库, 一个线上数据库。

所以就要把原来的只有一个数据库的改成两个数据库。

第一步:修改development.ini

# SQLAlchemy database URL
sqlalchemy.test.url = mysql://username:password@host:port/database
sqlalchemy.test.pool_recycle = 3600
sqlalchemy.online.url = mysql://username:password@host:port/database
sqlalchemy.online.pool_recycle = 3600

一个测试数据库,一个线上数据库

第二步:修改config/envirment.py

# Setup the SQLAlchemy database engine
test_engine = engine_from_config(config, 'sqlalchemy.test.')
online_engine = engine_from_config(config, 'sqlalchemy.online.')
init_model(test_engine, online_engine)

第三步:修改model/meta.py

"""SQLAlchemy Metadata and Session object"""
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
__all__ = ['BaseTest', 'BaseOnline', 'Session']
# SQLAlchemy session manager. Updated by model.init_model()
Session = scoped_session(sessionmaker())

# The declarative Base
BaseTest = declarative_base()
BaseOnline = declarative_base()

第四步:修改model/__init__.py

"""The application's model objects"""
from hello.model.meta import Session, BaseTest, BaseOnline

from hello.model.template_test import Template_test
from hello.model.template_online import Template_online

def init_model(test_engine, online_engine):
    """Call me before using any of the tables or classes in the model"""
    meta.BaseTest.metadata.bind = test_engine
    meta.BaseOnline.metadata.bind = online_engine

第五步:修改model/的多个表文件

from sqlalchemy import Column
from sqlalchemy import types
from hello.model.meta import BaseTest
class Template_test(BaseTest):
    __tablename__ = "template"

第六步:修改controller

根据model中表的情况修改controller的文件头

from hello.model.template_test import Template_test

大功告成!

pylons使用多个数据库(multiple DB)的更多相关文章

  1. nodejs操作mongodb数据库封装DB类

    这个DB类也算是我经历了3个实际项目应用的,现分享出来,有需要的请借鉴批评. 上面的注释都挺详细的,我使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关 ...

  2. 将excel的.xlsx文件转成数据库文件.db的方法

    1.下载好工具SQLite Expert Professional 3 ,晚上有很多,自行百度. 2.打开.xls文件,将文件另存为.csv文件.说明一下: 可以将xls文件看作是数据库里的一个表.所 ...

  3. 【转】Android动态破解微信本地数据库(EnMicroMsg.db)

    最近在公司接了一个任务,需要在几百台手机上安装一个app,目的是获取微信里面的通讯录,并且定时的把他发送到我们的服务器上.当时依次尝试的如下几个方案: 1.通过群控,将好友截图发送到服务端(pytho ...

  4. node.js连接MongoDB数据库,db.collection is not a function完美解决

    解决方法一. mongodb数据库版本回退: 这个错误是出在mongodb的库中,在nodejs里的写法和命令行中的写法不一样,3.0的api已经更新和以前的版本不不一样,我们在npm中没指定版本号的 ...

  5. nodejs mongodb 数据库封装DB类 -转

    使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关于mongoose的安装就是 npm install -g mongoose 这个DB类的数据库配置是 ...

  6. django 项目中使用多数据库 multiple databases

    假如在一个django项目中使用到了不只一个数据库, 其实这在大一点的工程中很常见,比如主从库 那么会涉及到如下一些东西 1, 定义 在settings中的DATABASE中定义会使用到的数据,比如除 ...

  7. 使用DBNEWID Utility 修改oracle数据库的 db name 和 dbid

    使用DBNEWID Utility 工具可以同时修改数据库名.DBID,也可以只修改其中一项 官方参考: https://docs.oracle.com/cd/E11882_01/server.112 ...

  8. 封装类似thinkphp连贯操作数据库的Db类(简单版)。

    <?php header("Content-Type:text/html;charset=utf-8"); /** *php操作mysql的工具类 */ class Db{ ...

  9. tp5数据库操作 Db类

    一.链接数据库 1.配置文件定义  application\database.php 注意:数据表前缀更改,在文件的prefix选项 2.类定义 二.数据库的基本使用 namespace app\de ...

随机推荐

  1. WebApp开发经验

    1.自适应屏幕 <meta name="viewport" id="viewport" content="width = device-widt ...

  2. [转载]字典树(trie树)、后缀树

    (1)字典树(Trie树) Trie是个简单但实用的数据结构,通常用于实现字典查询.我们做即时响应用户输入的AJAX搜索框时,就是Trie开始.本质上,Trie是一颗存储多个字符串的树.相邻节点间的边 ...

  3. CentOS下挂在NTFS分区

    本文参考自http://www.cnblogs.com/gbyukg/archive/2011/11/02/2232343.html centos下想访问NTFS分区,现在普遍的方法是利用ntfs-3 ...

  4. 前端复习-03-接上面ajax跨域问题的解决与探索

    废话不多少 ..我估计一万个人都搞不清楚 什么是跨域 然后就被这堵墙无情的挡住了..我尝试了很多办法解决这个问题.后来再慕课网上的一个老师的ppt那里看到一张图 我觉得 能记住这张图的话 应该就算是深 ...

  5. Hibernate入门(2)- 不用配置用注解

    在上一个例子里面,我用的配置文件的方式,这次改成注解. pom.xml 增加了hibernate-commons-annotations和hibernate-annotations <proje ...

  6. easyui问题小记

    在easyui1.4.3版本中,(其他版本不知道是不是也是这样的),绑定在datagridview上面的数据最好不要是带有特殊符号的字段,不然会导致部分的属性不好用,比如这样的字段  START_DA ...

  7. socket的一个错误的解释SocketException以及其他几个常见异常

    写socket程序有可能会遇见这个问题  其他信息: 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受.  这种情况我的 错误原因 ...

  8. HDU 4599 Dice (概率DP+数学+快速幂)

    题意:给定三个表达式,问你求出最小的m1,m2,满足G(m1) >= F(n), G(m2) >= G(n). 析:这个题是一个概率DP,但是并没有那么简单,运算过程很麻烦. 先分析F(n ...

  9. oracle创建用户赋予权限

    oracle用户创建及权限设置[转载] 权限: create session create table unlimited tablespace connect resource dba 例: #sq ...

  10. AFNetworking上传文件

    -(void)upload{ AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; NSD ...