Попытка удалить имя базы данных из файла sql - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь импортировать дамп postgres в базу данных sqlite3.Теперь pg_dump добавьте имя базы данных в выражения, и это не годится для sqlite3.

CREATE TABLE dbname.table

Можно ли настроить sqlite3 на игнорирование имени базы данных?Следующее решение - попытаться написать регулярное выражение, которое изменяет файл sql, но я не волшебник регулярных выражений, я получил что-то вроде:

printf "\nCREATE TABLE dbname.data;\nINSERT INTO dbname.data VALUES (\"the data in dbname.\")\n" | sed -e '/^CREATE TABLE/s/dbname.//g' -e '/^INSERT INTO/s/dbname.//g'

Но это неверно, потому что я хочузаменить только первое вхождение ...

Можете ли вы дать мне какое-то предложение?

1 Ответ

0 голосов
/ 07 февраля 2019

На самом деле вам не нужно изменять ваш файл операторов SQL:

$ sqlite3
sqlite> ATTACH 'your_database.db' AS dbname;
sqlite> .read dump_file.sql

ATTACH откроет базу данных, используя имя схемы dbname, так что dbname.tablename будетобратитесь к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...