如何在TheSchwartz中将数据库从MySQL更改为Oracle

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在TheSchwartz中将数据库从MySQL更改为Oracle相关的知识,希望对你有一定的参考价值。

我想在Perl的TheSchwartz模块(即作业队列系统)中将数据库从mysql切换到Oracle。我怀疑以下代码有关键。

my $client = TheSchwartz->new(
    databases => [{
    dsn  => 'dbi:mysql:TheSchwartz',
    user => 'dbi',
    pass => 'xxxxxxx',
    }],
    verbose => 1,
);  

我改变了代码。

dsn  => 'dbi:mysql:TheSchwartz',  

dsn  => 'dbi:Oracle:OraDB01',    

然后我收到了消息。

#Disabling DB 9e410d44ac4b9ede28c9ef34f6c1e817 because unknown

TheSchwartz没有告诉我任何有关Oracle错误的线索(ex密码错误或网络错误......)。

我的问题是 1.是否可以在perl的TheSchwartz中使用Oracle? 2.对于dubugging,如何在TheSchwartz中获取ORA-Error消息?

任何帮助都会受到欢迎。 问候,

答案

使用TheSchwartz几乎肯定是一个完整的红鲱鱼。 TheSchwartz只是创建了一个DBI连接。因此,一旦您可以在TheSchwartz之外成功创建DBI连接,您应该能够做同样的内部人TheSchwartz。

我接近它的方式分为两个阶段:

  • 编写一个简单的DBI程序来连接Oracle数据库。
  • 将成功的连接详细信息复制到TheSchwartz代码中。

我写的简单DBI程序,只需要像这样简单:

#!/usr/bin/perl

use strict;
use warnings;

use DBI;

my $dbh = DBI->connect('dbi:Oracle:OraDB01', 'dbi', 'xxx')
  or die $DBI::errstr;

这可能会以与现有代码相同的方式失败,但是您将获得原始DBI连接错误,这应该允许您解决问题所在。

显然,你可能会发现DBD::Oracle documentation也很有用。

以上是关于如何在TheSchwartz中将数据库从MySQL更改为Oracle的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Rails 中将我的数据库从 SQLite 更改为 MYSQL

如何在Mysql大表中将数据从表移动到另一个表

如何从 MySQL 查询中将 json 返回到 GraphQL?

如何在使用 mysql npm 的查询中将 *array of objects* 从 MySQL 返回到 Node js 服务器?

在java中将数据库从MySQL更改为PostgreSQL

如何在codeigniter中将ajax选择的依赖下拉选项传递给mysql数据库