Мне нужно написать скрипт для переноса данных из 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
А вот аналогичный вопрос уже дважды задавали...
здесь: Исключение Firebird: таблица неизвестна
и здесь: firebird isql: "в этой базе данных нет таблицы XXXX"
... но в этих случаях проблема заключалась в том, что таблица была чувствительна к регистру, будучи объявленной «между кавычками». У меня нет, как покажут первые строки DDL (извлеченного с помощью Flamerobin)...
CREATE TABLE CLIENTE
(
CLIENTE_ID integer NOT NULL,
CODIGO varchar(10),
TIPO_CLIENTE varchar(1),
NOME varchar(40),
...
Я могу без проблем получить доступ к базе данных с помощью IBExpert, Flamerobin и isql (но не смог сделать это с помощью драйвера python firebird). На данный момент я не знаю, что еще делать, и был бы очень признателен за помощь.
Я разместил свой комментарий в качестве ответа.





Я предполагаю, что вы подключаетесь к другой базе данных, чем вы думаете. Убедитесь, что вы действительно подключаетесь к той же базе данных, что и в FlameRobin. Я заметил, что вы указываете - как это выглядит - относительный путь к базе данных. Относительные пути разрешаются относительно определенного места конфигурации/установки, например, при подключении через сервер Firebird относительно его папки установки (IIRC, не проверял), при подключении с использованием Firebird Embedded относительно текущего рабочего каталога приложения и т. д.
Вы действительно должны использовать абсолютный путь или, лучше, псевдоним (определенный в aliases.conf для Firebird 2.5 и ниже, в databases.conf для Firebird 3 и выше).
Вы волшебник! aliases.conf легко решил проблему. Вы должны опубликовать свой комментарий в качестве ответа, чтобы свидетельство ваших способностей было сохранено для потомков. Спасибо!