Acerca dos espaços de trabalho de conversão antigos
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Os espaços de trabalho de conversão antigos são um tipo de espaços de trabalho de conversão mais antigo e limitado. Os espaços de trabalho de conversão antigos não suportam funcionalidades de conversão melhoradas pelo Gemini nem o editor de SQL interativo. Só pode usá-los para converter o esquema de origem com a ferramenta de migração Ora2Pg.
Não recomendamos a utilização do tipo de espaços de trabalho de conversão antigos para as suas migrações, uma vez que apresentam várias outras limitações ao fluxo de trabalho de conversão:
Espaço de trabalho de conversão interativo
Espaço de trabalho de conversão antigo
A conversão de esquemas e objetos de código ocorre no Database Migration Service.
Realiza conversões de esquemas e objetos de código fora do
Database Migration Service através da ferramenta de migração Ora2Pg.
Pode aplicar origens convertidas diretamente à base de dados de destino no serviço de migração de bases de dados.
É responsável por aplicar o esquema convertido à base de dados de destino na instância de destino do Cloud SQL para PostgreSQL.
Pode testar o esquema e o código de rascunho diretamente no serviço de migração de base de dados
para garantir que podem ser aplicados com êxito à instância de destino.
Não pode testar o esquema e o código de rascunho sem afetar a instância de destino.
Adiciona automaticamente colunas rowid em falta para tabelas que não têm chaves primárias nem restrições únicas.
Tem de adicionar as chaves principais em falta às tabelas de destino depois de aplicar o esquema.
Tabela 1: comparação de funcionalidades do espaço de trabalho de conversão
Use espaços de trabalho de conversão antigos
Se o seu cenário exigir a utilização de espaços de trabalho de conversão antigos,
modifique o processo de migração com as seguintes ações:
Escrever um ficheiro de configuração do Ora2Pg.
Consulte a
documentação do Ora2Pg para ver orientações sobre como usar
a ferramenta de conversão Ora2Pg. Expanda as secções seguintes para ver a lista completa de diretivas suportadas no Database Migration Service.
Configuração do Ora2Pg suportada no serviço de migração de base de dados
O Serviço de migração de base de dados suporta os seguintes itens de configuração para ficheiros Ora2Pg:
BOOLEAN_VALUES
DATA_TYPE
DEFAULT_NUMERIC
ENABLE_MICROSECOND
EXPORT_SCHEMA
MODIFY_STRUCT
MODIFY_TYPE
PG_INTEGER_TYPE
PG_NUMERIC_TYPE
PG_SCHEMA
PRESERVE_CASE
REPLACE_AS_BOOLEAN
REPLACE_COLS
REPLACE_TABLES
REPLACE_ZERO_DATE
SCHEMA
O serviço de migração de bases de dados usa perfis de ligação para definir
detalhes de conetividade, pelo que não precisa de definir as seguintes informações
no seu ficheiro de configuração do Or2Pg:
ORACLE_DSN
ORACLE_HOME
ORACLE_PWD
ORACLE_USER
PG_DSN
PG_PWD
PG_USER
Além disso, o serviço de migração de bases de dados não usa a diretiva de configuração WHERE
para limitar os registos a migrar.
Aplique manualmente o esquema convertido à base de dados de destino.
Depois de criar a configuração do Ora2Pg e criar o espaço de trabalho,
tem de aplicar o código gerado diretamente na base de dados de destino.
Migre tabelas sem chaves primárias.
O Database Migration Service migra apenas tabelas que tenham chaves principais.
Se a base de dados de origem incluir tabelas que não tenham chaves primárias,
tem de criar manualmente chaves primárias ou restrições exclusivas nas
tabelas convertidas na base de dados de destino depois de
aplicar o esquema convertido. Expanda a secção seguinte para ver mais detalhes.
Adicione restrições de chave primária na base de dados de destino
Para migrar tabelas Oracle sem chaves primárias, faça o seguinte:
Estabeleça ligação à instância do Cloud SQL de destino com um cliente SQL. Pode
usar os seguintes métodos:
psql cliente. Pode usar este método para estabelecer ligação ao IP privado da sua instância, mas pode ter de criar uma máquina virtual do Compute Engine.
gcloud sql connect. Este comando só funciona para instâncias do Cloud SQL com um endereço IP público ativado.
Crie as restrições de chave primária em falta para as suas tabelas. Para mais
informações sobre chaves primárias, consulte
Chaves primárias na documentação do PostgreSQL.
Também pode expandir as secções seguintes para ver exemplos de comandos SQL:
Crie chaves principais com colunas existentes
A sua tabela pode já ter uma chave principal lógica baseada numa coluna ou numa combinação de colunas. Por exemplo, podem existir colunas com uma restrição ou um índice único configurado. Use estas colunas para gerar uma nova chave primária para as tabelas na base de dados de origem. Por exemplo:
ALTERTABLETABLE_NAMEADDPRIMARYKEY(COLUMN_NAME);
Crie uma chave principal com todas as colunas
Se não tiver uma restrição pré-existente que possa servir como chave primária, crie chaves primárias com todas as colunas da tabela. Certifique-se
de que não excede o comprimento máximo da chave primária
permitido pela sua instância do PostgreSQL. Por exemplo:
Quando cria uma chave principal composta como esta, tem de listar explicitamente
todos os nomes das colunas que quer usar. Não é possível usar uma declaração para obter todos os nomes das colunas para este fim.
Crie uma restrição única com a pseudocoluna ROWID
As bases de dados Oracle usam a pseudocoluna ROWID para armazenar a localização de cada linha numa tabela. Para migrar tabelas do Oracle
que não tenham chaves primárias, pode adicionar uma coluna ROWID
na base de dados PostgreSQL de destino. O serviço de migração de base de dados
preenche a coluna com os valores numéricos correspondentes da
pseudocoluna ROWID do Oracle de origem.
Para adicionar a coluna e defini-la como a chave principal, execute o seguinte:
Depois de executar o fluxo de trabalho de conversão com o espaço de trabalho antigo,
pode avançar com os procedimentos de migração padrão. Consulte o artigo
Crie uma tarefa de migração.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-21 UTC."],[],[],null,["# About legacy conversion workspaces\n\nLegacy conversion workspaces are an older, more limited type of conversion\nworkspaces. Legacy conversion workspaces don't support Gemini-enhanced\nconversion features or the interactive SQL editor. You can only use them to convert your\nsource schema with the Ora2Pg migration tool.\n| **Important:** Database Migration Service supports Ora2Pg versions `21.1` - `23.2`.\n\nWe don't recommend using the legacy type of conversion workspaces for your\nmigrations as they present multiple other limitations to the conversion\nworkflow:\n\nUse legacy conversion workspaces\n--------------------------------\n\nIf your scenario requires the use of legacy conversion workspaces,\nmodify the migration process with the following actions:\n\n1. Write an Ora2Pg configuration file.\n\n Refer to the\n [Ora2Pg documentation](https://ora2pg.darold.net/documentation.html#CONFIGURATION) for guidance on how to use\n the Ora2Pg conversion tool. Expand the following sections for the full\n list of directives supported in Database Migration Service. \n\n #### Ora2Pg configuration supported in Database Migration Service\n\n Database Migration Service supports the following configuration items for Ora2Pg files:\n - `BOOLEAN_VALUES`\n - `DATA_TYPE`\n - `DEFAULT_NUMERIC`\n - `ENABLE_MICROSECOND`\n - `EXPORT_SCHEMA`\n - `MODIFY_STRUCT`\n - `MODIFY_TYPE`\n - `PG_INTEGER_TYPE`\n - `PG_NUMERIC_TYPE`\n - `PG_SCHEMA`\n - `PRESERVE_CASE`\n - `REPLACE_AS_BOOLEAN`\n - `REPLACE_COLS`\n - `REPLACE_TABLES`\n - `REPLACE_ZERO_DATE`\n - `SCHEMA`\n\n Database Migration Service uses connection profiles to define\n connectivity details, so you don't need to define the following information\n in your Or2Pg configuration file:\n - `ORACLE_DSN`\n - `ORACLE_HOME`\n - `ORACLE_PWD`\n - `ORACLE_USER`\n - `PG_DSN`\n - `PG_PWD`\n - `PG_USER`\n\n Additionally, Database Migration Service doesn't use the `WHERE`\n configuration directive to limit the records to migrate.\n2. [Create a legacy conversion workspace, and upload the Ora2Pg file to convert\n your schema](/database-migration/docs/oracle-to-postgresql/create-conversion-workspace#legacy-ws).\n3. Manually apply converted schema to the destination database.\n\n\n After you create the Ora2Pg configuration and create the workspace,\n you must apply the generated code by yourself directly on the destination\n database.\n | **Important:** With legacy conversion workspaces, you can't test the schema before you migrate. If you encounter any issues when you apply the converted schema, you need to clear the faulty schema from the destination database, adjust your Ora2Pg file, and re-create the legacy conversion workspace with the Ora2Pg file.\n4. Migrate tables without primary keys.\n\n\n Database Migration Service migrates only tables that have primary keys.\n If your source database includes tables that don't have primary keys,\n you need to manually create primary keys or unique constraints in the\n converted tables in the destination database after you\n apply the converted schema. Expand the following section for more details. \n\n #### Add primary key constraints in the destination database\n\n To migrate Oracle tables without primary keys, do the following:\n 1. Connect to your destination Cloud SQL instance with a SQL client. You can use the following methods:\n - [`psql` client](/sql/docs/postgres/connect-admin-ip). You can use this method to connect to your instance private IP, but it might require that you create a Compute Engine virtual machine.\n - [`gcloud sql connect`](/sdk/gcloud/reference/sql/connect) command. This command works only for Cloud SQL instances that have a public IP address enabled.\n 2. Create the missing primary key constraints for your tables. For more information about primary keys, see [Primary Keys](https://www.postgresql.org/docs/current/ddl-constraints.html#DDL-CONSTRAINTS-PRIMARY-KEYS) in the PostgreSQL documentation.\n\n You can also expand the following sections to see sample SQL commands: \n\n #### Create primary keys using existing columns\n\n Your table might already have a logical primary key based on a\n column or a combination of columns. For example, there might be\n columns with a unique constraint or index configured. Use these\n columns to generate a new primary key for tables in your source\n database. For example: \n\n ```sql\n ALTER TABLE TABLE_NAME\n ADD PRIMARY KEY (COLUMN_NAME);\n ```\n\n \u003cbr /\u003e\n\n #### Create a primary key using all columns\n\n If you don't have a pre-existing constraint that could serve as a\n primary key, create primary keys using all columns of the table. Make\n sure that you don't exceed the maximum length of the primary key\n allowed by your PostgreSQL instance. For example: \n\n ```sql\n ALTER TABLE TABLE_NAME\n ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...);\n ```\n\n When creating a composite primary key like this, you need to explicitly\n list all column names you want to use. It's not possible to use a statement\n to retrieve all column names for this purpose. \n\n #### Create a unique constraint with the `ROWID` pseudocolumn\n\n Oracle databases use the\n [`ROWID` pseudocolumn](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ROWID-Pseudocolumn.html) to store\n the location of each row in a table. To migrate Oracle tables\n that don't have primary keys, you can add a `ROWID`\n column in the destination PostgreSQL database. Database Migration Service\n populates the column with the corresponding numeric values from\n the source Oracle `ROWID` pseudocolumn.\n\n To add the column and to set it as the primary key, run the following: \n\n ```sql\n ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL;\n CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid;\n ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('\u003cvar translate=\"no\"\u003eTABLE_NAME\u003c/var\u003e_rowid_seq');\n ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_DISPLAY_NAME PRIMARY KEY (rowid);\n ```\n\nWhat's next\n-----------\n\nAfter you perform the conversion workflow with the legacy workspace,\nyou can proceed with the standard migration procedures. See\n[Create a migration job](/database-migration/docs/oracle-to-postgresql/create-migration-job)."]]