标签: multiple-databases

DBML中两个不同数据库的表?

从一个数据库中拖入两个表后,我切换到另一个表并拖入一个表.现在,如果我想用新的连接字符串替换连接字符串,我会收到一条消息.我想在一个DBML中使用来自多个数据库的表.这可能吗?

multiple-databases linq-to-sql

5
推荐指数
2
解决办法
2451
查看次数

django测试框架是否支持多个数据库?

我正在使用django 1.2,我不得不在我的项目上设置第二个数据库.一旦我在我的项目中设置第二个连接和路由器,我甚至没有引用第二个数据库的所有测试用例都开始失败.运行应用程序工作正常,syncdb工作正常,只是我遇到问题的测试(单元测试).

在我看来,永远不会创建第二个数据库,即使我手动创建(test_mydbname)它仍然失败.

这支持吗?

django unit-testing multiple-databases

5
推荐指数
1
解决办法
1596
查看次数

establish_connection似乎不支持连接

我正在尝试将我的用户帐户和会话数据移动到一个单独的数据库中,以便我们最终可以跨多个应用程序共享它.

我在网上看到很多人说用来establish_connection告诉模型连接到不同的数据库,但是我无法让它工作.

配置/ database.yml的

development:
  adapter: mysql2
  encoding: utf8
  reconnect: true
  pool: 5
  host: localhost
  database: project_name_development

authentication:
  adapter: mysql2
  encoding: utf8
  reconnect: true
  pool: 5
  host: localhost
  database: authentication
Run Code Online (Sandbox Code Playgroud)

应用程序/模型/ user.rb

class User < ActiveRecord::Base
  establish_connection :authentication
  has_one :person
end
Run Code Online (Sandbox Code Playgroud)

应用程序/模型/ person.rb

class Person < ActiveRecord::Base
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

这似乎有效:

> User.connection.instance_eval { @config[:database] }
=> "authentication"
> Person.connection.instance_eval { @config[:database] }
=> "project_name_development"
Run Code Online (Sandbox Code Playgroud)

我可以User孤立地查询:

> User.where(:admin => true)
=> [ ... lots of results …
Run Code Online (Sandbox Code Playgroud)

join ruby-on-rails multiple-databases arel ruby-on-rails-3

5
推荐指数
1
解决办法
1271
查看次数

NHibernate:在没有DB链接的不同服务器上跨多个DB映射实体

使用最新版本的NHibernate(可能还有一些插件),可以在不使用DB链接的情况下在不同服务器上的多个数据库中映射实体吗?

对于后台,我希望实现与此DBA.SE帖子中描述的内容类似的东西.

.net nhibernate nhibernate-mapping multiple-databases

5
推荐指数
1
解决办法
1580
查看次数

在spring中运行时更改bean属性/值

我使用的是spring mvc + hibernate +两个数据库

例如:我创建了2个sessionFactories.sessionFactory1(使用datasource1)和sessionFactory2(使用datasource2).

是否可以在运行时更改sessionFactory1或更改sessionFactory2sessionFactory,以便dao/s引用它们.sessionFactory已经自动连接到所有dao/s.

我正在寻找它我认为@Configuration可以帮助我,但我不确定.

我正在尝试AbstractRoutingDataSource,但不认为它有帮助.

java spring hibernate multiple-databases

5
推荐指数
1
解决办法
2632
查看次数

在不重新启动服务器的情况下使 django 的设置缓存无效?

我正在使用一个涉及多个数据库的 django 应用程序 - 即动态添加的多个数据库。每当有新客户注册时,我们都会为他们提供一个新数据库。设置文件可以动态加载这些(例如,我在服务器上运行一个 shell 脚本,并在不更改任何代码的情况下更新数据库定义 - 如果你真的很好奇如何,给我发消息),但由于 uwsgi/django 缓存设置,我必须撞 uwsgi 才能让新数据库得到认可。

关于强制 django 重新加载设置或使其设置缓存无效的任何建议?它可以来自命令行等。目前我正在使用 import settings 而不是来自,django.conf import settings因为过去它已经半工作,但我可以轻松切换回来。

谢谢!

ps - 如果答案是“你这个笨蛋,不要使用动态多个数据库”,那也没关系;)

database django caching multiple-databases uwsgi

5
推荐指数
1
解决办法
369
查看次数

Ruby - Sequel Model访问多个数据库

我正在尝试将Ruby Sequel::ModelORM功能用于Web服务,其中每个用户的数据都存储在一个单独的MySQL数据库中.可能有数千个用户,因此可能有数据库.

在每个Web请求中,我想构建连接字符串以连接到用户的数据,执行工作,然后关闭连接.

使用Sequel时,我可以指定用于特定代码块的数据库:

    Sequel.connect(:adapter=>'mysql', :host=>'localhost', database=>'test1') do |db|
        db.do_something()
    end
Run Code Online (Sandbox Code Playgroud)

这一切都很好,我可以在特定用户的数据库上执行Sequel操作.但是,在使用时Sequel::Model,当我来做我的数据库操作时,它看起来像这样:

    Supplier.create(:field1 => 'TEST')
Run Code Online (Sandbox Code Playgroud)

即它不db作为参数,所以只使用一些共享数据库配置.

我可以用两种方式配置数据库模型,设置全局DB变量:

    DB = Sequel.connect(:adapter=>'mysql', :host=>'localhost', database=>'test1')

    class Supplier < Sequel::Model
    end
Run Code Online (Sandbox Code Playgroud)

或者,我可以为模型设置数据库:

    Sequel::Model.db = Sequel.connect(:adapter=>'mysql', :host=>'localhost', database=>'test1')

    class Supplier < Sequel::Model
    end
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,设置这样的共享变量都是不对的 - 可能会同时处理多个请求,每个请求都需要自己的数据库配置.

有没有办法解决?有没有办法使用Sequel::Model?指定每个请求数据库配置?

顺便说一下,我遇到了与DataMapper类似的问题,我现在想知道如果使用Ruby,是否只有一个多租户数据库是唯一的选择,尽管我更愿意避免这种情况,因为它限制可扩展性.

非常感谢解决方案或任何相关讨论.

谢谢皮特

ruby multiple-databases sequel

5
推荐指数
2
解决办法
3459
查看次数

yii2上的多个数据库连接

我正在尝试在yii2框架上使用多个数据库连接.在我的配置文件夹中的db.php文件下,我有这段代码:

return [
    'class' => 'yii\db\Connection',
    'components' => [
        'db1' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=new',
            'username' => 'root',
            'password' => 'password',
            'charset' => 'utf8',
        ],
        'db2' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=old',
            'username' => 'root',
            'password' => 'password',
            'charset' => 'utf8',
        ],
    ],
];
Run Code Online (Sandbox Code Playgroud)

在models文件夹下的test.php中,我有以下内容...

namespace app\models;

use Yii;
use yii\base\Model;
use yii\db\Query;

class GetAds extends Model
{
    public function ads()
    {

        $test = Yii::$app->db1->createCommand((new \yii\db\Query)->select('*')->from('members'))->queryAll();

    }
Run Code Online (Sandbox Code Playgroud)

当我尝试访问时,我收到此错误消息"获取未知属性:yii\web\Application :: db1"

我该如何解决这个问题?我实际上遵循了本指南多个数据库连接和Yii 2.0

我哪里做错了?

最糟糕的是,我已经设置只使用一个数据库......在我的模型上,我使用这个代码.. …

php database multiple-databases yii2

5
推荐指数
1
解决办法
8382
查看次数

具有多个数据库的Grails多租户

我似乎无法找到任何有关Grails Multitenancy with Multiple Databases(每个租户一个)的更新资源/指南,插件或示例.我目前坚持使用https://grails.org/plugin/multi-tenant-single-db和过时的https://grails.org/plugin/multi-tenant-core.

如何执行依赖于登录用户的数据库切换?

grails multiple-databases multi-tenant

5
推荐指数
1
解决办法
1287
查看次数

使用单独的数据库进行 papertrail 版本控制

我正在尝试使用 papertrail 将模型的更改事件记录在单独的数据库中。

我正在使用 Rails 4.1.2

红宝石2.1

纸迹 4.0.0

下面是我在关注中添加的代码

module Foo
  class Base < ActiveRecord::Base
  end

 class Version < Base
  include PaperTrail::VersionConcern
 end

 class Topic < Base
   has_paper_trail class_name: 'Foo::Version'
 end
end
Foo::Base.establish_connection(:trail_development)
Run Code Online (Sandbox Code Playgroud)

我已将这个 Foo 包含在 topic.rb 中

class Topic < ActiveRecord::Base
  include Foo
end
Run Code Online (Sandbox Code Playgroud)

当我尝试创建、编辑或删除主题时,这不起作用。

参考https://github.com/airblade/paper_trail/pull/289

ruby ruby-on-rails multiple-databases paper-trail-gem

5
推荐指数
1
解决办法
688
查看次数