我需要编写一个脚本来将数据从Firebird 2.5迁移到mySQL。我正在尝试:
const Firebird = require('node-firebird')
const options = {
host: '127.0.0.1',
port: 3050,
database: 'database.gdb',
user: 'SYSDBA',
password: 'masterkey',
lowercase_keys: false,
role: null,
pageSize: 4096
}
Firebird.attach(options, function(err,db){
if(err) throw err
db.execute("SELECT * from CLIENTE", function(err,result){
if(err) throw err
})
})
但我不断收到错误消息:
Error: Dynamic SQL Error, SQL error code = -204, Table unknown, CLIENTE, At line 1, column 10
现在,已经问过两次类似的问题...
此处:transcode(_:from:to:stoppingOnError:into:)
...但是在那些情况下,问题在于该表通过声明为“引号之间”而变得区分大小写。我的不是,因为DDL的第一行(使用Flamerobin提取)将显示...
CREATE TABLE CLIENTE
(
CLIENTE_ID integer NOT NULL,
CODIGO varchar(10),
TIPO_CLIENTE varchar(1),
NOME varchar(40),
...
我可以使用IBExpert,Flamerobin和isql毫无问题地访问数据库(但使用firebird python驱动程序无法做到)。在这一点上,我不知道该怎么办,非常感谢您的帮助。
答案 0 :(得分:2)
我猜您正在连接的数据库与您想象的不同。确保您确实连接到与FlameRobin中相同的数据库。我注意到您指定了-看起来像是-数据库的相对路径。相对路径是相对于某些配置/安装特定位置来解析的,例如,通过Firebird服务器相对于其安装文件夹(IIRC,未验证)进行连接时,当使用Firebird Embedded连接时,相对于应用程序当前的工作目录,等等。
您应该真正使用绝对路径,或者更好地使用别名(对于Firebird 2.5和更低版本,请在aliass.conf中定义;对于Firebird 3和更高版本,请在databases.conf中定义)。