Erro:
ERROR: could not open extension control file "/<caminho de instalação do PostgreSQL>/extension/uuid-ossp.control": No such file or directory
Correção:
dnf install postgresql-contrib
CREATE OR REPLACE extension IF NOT EXISTS "uuid-ossp";
Se você estiver em uma nova instalação (base zerada, sem dados inseridos), é possível apenas recriar o banco de dados. Faça isto apenas se a base não estiver sendo utilizada e estiver sem dados inseridos. Após, certifique-se de reiniciar o DBAccess.
Se você estiver em uma jornada de migração ou se sua base de dados já está sendo utilizada, existem dois cenários possíveis.
Minha base de dados original era SQL Server e ainda tenho acesso à ela
Base de origem SQL Server
Os comandos a seguir devem ser feitos na base de origem SQL Server. Cada bloco de comando trará, como resultado, um script pronto para ser executado em PostgreSQL. Execute o resultado de cada bloco na ordem descrita.
-- Bloco 1: Alteracao do campo para tipo varchar
select 'alter table ' + object_NAME(c.object_id) + ' alter column ' + c.name + ' type varchar;'
FROM sys.all_columns c
INNER JOIN sys.types t ON t.system_type_id = c.system_type_id
where Object_Schema_name(c.object_id) <> 'sys'
and t.name = 'uniqueidentifier';
-- Bloco 2: Remocao do default
select 'alter table ' + object_NAME(c.object_id) + ' alter column ' + c.name + ' drop default;'
FROM sys.all_columns c
INNER JOIN sys.types t ON t.system_type_id = c.system_type_id
where Object_Schema_name(c.object_id) <> 'sys'
and t.name = 'uniqueidentifier';
-- Bloco 3: Definicao do tipo do campo
select 'alter table ' + object_NAME(c.object_id) + ' alter column ' + c.name + ' type uuid using uuid_generate_v4();'
FROM sys.all_columns c
INNER JOIN sys.types t ON t.system_type_id = c.system_type_id
where Object_Schema_name(c.object_id) <> 'sys'
and t.name = 'uniqueidentifier';
-- Bloco 4: Definicao do padrao do campo
select 'alter table ' + object_NAME(c.object_id) + ' alter column ' + c.name + ' set default uuid_generate_v4();'
FROM sys.all_columns c
INNER JOIN sys.types t ON t.system_type_id = c.system_type_id
where Object_Schema_name(c.object_id) <> 'sys'
and t.name = 'uniqueidentifier';
Minha base de origem não está disponível/não era SQL Server
Os comandos a seguir devem ser feitos na sua base de dados PostgreSQL. Cada bloco de comando trará, como resultado, um script pronto para ser executado. Execute o resultado de cada bloco na ordem descrita em sua base de dados.
-- Bloco 1: Alteracao do campo para tipo varchar
select 'alter table ' || table_name || ' alter column ' || column_name || ' type varchar;' as "bloco_1"
from information_schema.columns
where column_name like '%msuidt'
and table_catalog = 'tmprd';
-- Bloco 2: Remocao do default
select 'alter table ' || table_name || ' alter column ' || column_name || ' drop default;' as "bloco_2"
from information_schema.columns
where column_name like '%msuidt'
and table_catalog = 'tmprd';
-- Bloco 3: Definicao do tipo do campo
select 'alter table ' || table_name || ' alter column ' || column_name || ' type uuid using uuid_generate_v4();' as "bloco_3"
from information_schema.columns
where column_name like '%msuidt'
and table_catalog = 'tmprd';
-- Bloco 4: Definicao do padrao do campo
select 'alter table ' || table_name || ' alter column ' || column_name || ' set default uuid_generate_v4();' as "bloco_4"
from information_schema.columns
where column_name like '%msuidt'
and table_catalog = 'tmprd';