Переход с HSQLDB на PostgreSQL

Автор Ириминаге, 21 апреля 2022, 16:50

0 Пользователи и 1 гость просматривают эту тему.

Ириминаге

Здравствуйте! Начитавшись ужасов в интернете, решил всё-таки перейти с HSQLDB на PostgreSQL. Поставил 9.5 версию второго, и pgadmin 4, накидал эскизы баз. Долго (и упорно) искал возможность перенастройки базы с одной БД на другую и не нашёл. Почесав репу и чуть не дав кому-то в тыкву, через Мастер подключил базу. Но кто мне сказал, что пример, приведённый в Мастере можно использовать при пожаротушении?! Правильно, ни кто. Потому как строка, оказывается не "host=$hostname:5432 dbname=$dbname", а "postgresql://localhost:5432/dbname". Немного почесав затылок, база всё же подключилась. Вот только кроме Public, где находятся, собственно, базы, оказалось ещё два куста: information_schema и pg_catalog. И тут я задумался: а можно ли как-то без этих кустов? Затем я закрыл файл, открыл и он у меня попросил пароль. Из этого вытекает второй вопрос: можно ли как-нибудь сделать открытие файла без запроса пароля? И, наконец, последний на сегодня вопрос: если Базу перенести в другое место, как пути править?
Он верил в Мир и Здравый Смысл,
В себя, в людей, в любовь, в науку!
Но кто-то Кафку положил,
В его протянутую руку...

sokol92

#1
Вот пример, который без запроса пароля у пользователя помещает результат выполнения SQL-запроса с начала первого листа документа.
Sub TestImport
Dim oDoc, oRange, oDesc, oBaseContext, oDBSource
oDoc=ThisComponent
oBaseContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDBSource=oBaseContext.getByName("Postgre")
oDBSource.User="test2"
oDBSource.Password="test2"
oRange=oDoc.Sheets(0).getCellRangeByName("A1")
oDesc=oRange.createImportDescriptor(False)
oDesc(0).value="Postgre"
oDesc(1).value=1
oDesc(2).value="Select * from test2.""f_ex$oksm"" f Order by 1"
oRange.doImport oDesc
End Sub

Можно работать с базами данных, создавая источники данных на лету. Об этом написано в книге А.Питоньяка AndrewBase.odt.  
Владимир.

economist

#2
Цитата: Ириминаге от 21 апреля 2022, 16:50если Базу перенести в другое место, как пути править?

Ириминаге, а вы точно уверены что вам нужна PostgreSQL - мощнейшая и сложная многопользовательская база данных с безопасностью на основе ролей? Может вместо "учебной" HSQLDB нужно было "шагнуть рядом", в FireBird Embed?

Ну а если активных пользователей немного (3-5, как в старом добром MS Access) - будет очень хороша однофайловая, крохотная (~800 кБ), безсерверная, самая распространенная, самая быстрая и самая легкая в освоении и написании запросов СУБД SQLite.

Работать с нею очень легко, не нужно обкавычивать поля, писать группировки для агрегатов, есть всю плюшки больших СУБД, всякие WITH CTE итд. На выбор по два ODBC/JDBC-драйвера для доступа. Куча удобных редакторов запросов.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ириминаге

#3
Экономист, с постгрескюэлем я немного знаком: приходилось ручками исправлять недочеты работы фсс элн, да и когда-то на нем был форум организации.  А к файербёрд я не знаю как подступиться). А ещё постгрескюэль понимает булевские типы, что не может меня не радовать. И буржуйский аккесс нам строжайше противопоказан, поэтому, собственно, пришлось повернуть стопы в сторону OpenOffice и libreoffice.
Но спасибо за заботу!

UPD: вчера прочитал пост второпях, не всё увидел. Наверно Вы правы, надо было что-то попроще, но в организации уже крутятся PostgreSQL сервера и мне проще будет "присоседиться" к одному из них, чем разворачивать в сети ещё один под эту задачу.
Он верил в Мир и Здравый Смысл,
В себя, в людей, в любовь, в науку!
Но кто-то Кафку положил,
В его протянутую руку...

Ириминаге

Сокол, спасибо за идею, завтра попробую поэкспериментировать!
Он верил в Мир и Здравый Смысл,
В себя, в людей, в любовь, в науку!
Но кто-то Кафку положил,
В его протянутую руку...

Ириминаге

#5
В общем, наковырял:

1. Правка -> База данных  -> Тип подключения
Тут у базы можно поменять тип подключения к БД, путь и логин.

2. Правка  -> База данных -> Свойства. Тут можно поменять путь и логин

3. Если не ставить галку "требуется пароль", то пароль спрашивать не будет, однако логин должен быть.

Но всё ещё непонятно, что делать со всеми этими кустами....

UPD: Со встроенной БД такой финт ушами не проходит....
Он верил в Мир и Здравый Смысл,
В себя, в людей, в любовь, в науку!
Но кто-то Кафку положил,
В его протянутую руку...

economist

Цитата: Ириминаге от 22 апреля 2022, 08:17Со встроенной БД такой финт ушами не проходит....
Встроенный движок HSQLDB и FireBird Embed - однопользовательские, поэтому и настроек нет. Для всех остальных движков такие настройки есть.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ириминаге

Цитата: economist от 22 апреля 2022, 11:12
Встроенный движок HSQLDB и FireBird Embed - однопользовательские, поэтому и настроек нет. Для всех остальных движков такие настройки есть.
Тогда тем более не нужен файербёрд. Но спасибо за информацию, буду знать!
Он верил в Мир и Здравый Смысл,
В себя, в людей, в любовь, в науку!
Но кто-то Кафку положил,
В его протянутую руку...