Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Leandro DUTRA
2008/6/11 Herick Marques <[EMAIL PROTECTED]>:
> Preciso criar um campo em minha tabela, porém, quero verificar se esse
> campo já existe ou não.

Que tal dar o ALTER TABLE e então capturar o erro?


-- 
skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED]
+55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803
+55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED]
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Herick Marques
Leandro DUTRA escreveu:
> 2008/6/11 Herick Marques <[EMAIL PROTECTED]>:
>   
>> Preciso criar um campo em minha tabela, porém, quero verificar se esse
>> campo já existe ou não.
>> 
>
> Que tal dar o ALTER TABLE e então capturar o erro?
>
>
>   
Então, o problema é que eu queria evitar a mensagem de erro.
-- 
* Hérick N. Marques
BR express *
Fone: 16 3307.7600
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Evandro Ricardo Silvestre
Herick Marques wrote:
> Olá pessoal,
>
> Preciso criar um campo em minha tabela, porém, quero verificar se esse 
> campo já existe ou não.
> Tentei executar esses scripts pelo console do PG mas nenhum deu certo.
>   
Você pode acessar as tabelas do catalogo e verificar se o campo existe.
Por exemplo:

  SELECT a.relname AS Tabela, b.attname AS Campo
  FROM pg_class a
  JOIN pg_attribute b ON (b.attrelid = a.relfilenode)
  WHERE  b.attstattarget = -1 AND
 a.relname =  AND  b.attname = ;
  IF NOT FOUND THEN
 existe o campo
  ELSE
 não existe o campo
  END IF;

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Dickson Guedes
Herick Marques escreveu:
> Leandro DUTRA escreveu:
>> 2008/6/11 Herick Marques <[EMAIL PROTECTED]>:
>>   
>>> Preciso criar um campo em minha tabela, porém, quero verificar se esse
>>> campo já existe ou não.
>>> 
>> Que tal dar o ALTER TABLE e então capturar o erro?
>>
>>
>>   
> Então, o problema é que eu queria evitar a mensagem de erro.

Então porque voce não pergunta pro catálogo do sistema, por exemplo?

Ou ainda use o EXCEPTION [1]


[1] 
http://www.postgresql.org/docs/8.2/interactive/plpgsql-control-structures.html

-- 
[]s
Dickson S. Guedes
-
Projeto Colmeia - Curitiba - PR
(41) 3254-7130 ramal: 27
http://pgcon.postgresql.org.br
http://makeall.wordpress.com/
http://planeta.postgresql.org.br/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Herick Marques
Evandro Ricardo Silvestre escreveu:
> Herick Marques wrote:
>   
>> Olá pessoal,
>>
>> Preciso criar um campo em minha tabela, porém, quero verificar se esse 
>> campo já existe ou não.
>> Tentei executar esses scripts pelo console do PG mas nenhum deu certo.
>>   
>> 
> Você pode acessar as tabelas do catalogo e verificar se o campo existe.
>
>   
Olá Evandro, obrigado pela ajuda, mas o problema continua.
Usei o script que vc me passou fiz a alteração necessária, mas ele não 
executa no console do PG.
usei o seguinte script:
SELECT a.relname AS Tabela, b.attname AS Campo
  FROM pg_class a
  JOIN pg_attribute b ON (b.attrelid = a.relfilenode)
  WHERE  b.attstattarget = -1 AND
 a.relname = 'allst' AND  b.attname = 'blocker';
  IF NOT FOUND THEN
ALTER TABLE allst ADD blocker BOOLEAN NOT NULL
  END IF;

O console dá o seguinte erro:
ERROR: syntaxe error at or near "IF" SLQ state: 42601 Character: 218

Sabe me dizer se eu preciso passar mais algum comando, tipo um execute, 
ou colocar o script dentro de um begin/end, etc?
Obrigado!

-- 
* Hérick N. Marques
BR express *
Fone: 16 3307.7600
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Ribamar Sousa
2008/6/11 Herick Marques <[EMAIL PROTECTED]>:

> Evandro Ricardo Silvestre escreveu:
> > Herick Marques wrote:
> >
> Olá Evandro, obrigado pela ajuda, mas o problema continua.
> Usei o script que vc me passou fiz a alteração necessária, mas ele não
> executa no console do PG.
> usei o seguinte script:
> SELECT a.relname AS Tabela, b.attname AS Campo
>  FROM pg_class a
>  JOIN pg_attribute b ON (b.attrelid = a.relfilenode)
>  WHERE  b.attstattarget = -1 AND
>  a.relname = 'allst' AND  b.attname = 'blocker';
>  IF NOT FOUND THEN
>ALTER TABLE allst ADD blocker BOOLEAN NOT NULL
>  END IF;
>
> O console dá o seguinte erro:
> ERROR: syntaxe error at or near "IF" SLQ state: 42601 Character: 218
>
> Sabe me dizer se eu preciso passar mais algum comando, tipo um execute,
> ou colocar o script dentro de um begin/end, etc?
> Obrigado!
>

No alter table deve ser assim:

   ALTER TABLE allst ADD COLUMN blocker BOOLEAN NOT NULL

-- 
Ribamar FS - [EMAIL PROTECTED]
http://ribafs.net
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Evandro Ricardo Silvestre
Herick Marques wrote:
> Evandro Ricardo Silvestre escreveu:
>   
>> Herick Marques wrote:
>>   
>> 
>>> Olá pessoal,
>>>
>>> Preciso criar um campo em minha tabela, porém, quero verificar se esse 
>>> campo já existe ou não.
>>> Tentei executar esses scripts pelo console do PG mas nenhum deu certo.
>>>   
>>> 
>>>   
>> Você pode acessar as tabelas do catalogo e verificar se o campo existe.
>>
>>   
>> 
> Olá Evandro, obrigado pela ajuda, mas o problema continua.
> Usei o script que vc me passou fiz a alteração necessária, mas ele não 
> executa no console do PG.
> usei o seguinte script:
> SELECT a.relname AS Tabela, b.attname AS Campo
>   FROM pg_class a
>   JOIN pg_attribute b ON (b.attrelid = a.relfilenode)
>   WHERE  b.attstattarget = -1 AND
>  a.relname = 'allst' AND  b.attname = 'blocker';
>   IF NOT FOUND THEN
> ALTER TABLE allst ADD blocker BOOLEAN NOT NULL
>   END IF;
>
> O console dá o seguinte erro:
> ERROR: syntaxe error at or near "IF" SLQ state: 42601 Character: 218
>
> Sabe me dizer se eu preciso passar mais algum comando, tipo um execute, 
> ou colocar o script dentro de um begin/end, etc?
>   
Não sei lhe informar como fazer no console, recomendo que cria um SP 
para verificar e executar a alteração da tabela.

Evandro
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Herick Marques
Ribamar Sousa escreveu:
> 2008/6/11 Herick Marques <[EMAIL PROTECTED] 
> >:
>
> Evandro Ricardo Silvestre escreveu:
> > Herick Marques wrote:
> >
> Olá Evandro, obrigado pela ajuda, mas o problema continua.
> Usei o script que vc me passou fiz a alteração necessária, mas ele não
> executa no console do PG.
> usei o seguinte script:
> SELECT a.relname AS Tabela, b.attname AS Campo
>  FROM pg_class a
>  JOIN pg_attribute b ON (b.attrelid = a.relfilenode)
>  WHERE  b.attstattarget = -1 AND
> a.relname = 'allst' AND  b.attname = 'blocker';
>  IF NOT FOUND THEN
>ALTER TABLE allst ADD blocker BOOLEAN NOT NULL
>  END IF;
>
> O console dá o seguinte erro:
> ERROR: syntaxe error at or near "IF" SLQ state: 42601 Character: 218
>
> Sabe me dizer se eu preciso passar mais algum comando, tipo um
> execute,
> ou colocar o script dentro de um begin/end, etc?
> Obrigado!
>
>
> No alter table deve ser assim:
>
>ALTER TABLE allst ADD COLUMN blocker BOOLEAN NOT NULL
>
> -- 
> Ribamar FS - [EMAIL PROTECTED] 
> http://ribafs.net
> 
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>   
Amigo, o problema não ocorre no script que faz a criação/ alteração da 
tabela, está ocorrendo na cláusula de verificação.
Esse Alter Table, tato da maneira como eu tinha colocado como dessa que 
vc me passou funcionou, o problema continua sendo a verificação da 
existência.
Criar uma SP eu acho desnecessário pois esse script vai ser executado 
poucas vezes, só quando as bases de clientes sofrerem atualização, e aí 
está a razão de eu não querer que apareça mensagem de erro.

-- 
* Hérick N. Marques
BR express *
Fone: 16 3307.7600
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Dickson Guedes
Herick Marques escreveu:
> Amigo, o problema não ocorre no script que faz a criação/ alteração da 
> tabela, está ocorrendo na cláusula de verificação.
> Esse Alter Table, tato da maneira como eu tinha colocado como dessa que 
> vc me passou funcionou, o problema continua sendo a verificação da 
> existência.
> Criar uma SP eu acho desnecessário pois esse script vai ser executado 
> poucas vezes, só quando as bases de clientes sofrerem atualização, e aí 
> está a razão de eu não querer que apareça mensagem de erro.

Que tal usar o information_schema.columns ?

-- 
[]s
Dickson S. Guedes
-
Projeto Colmeia - Curitiba - PR
(41) 3254-7130 ramal: 27
http://pgcon.postgresql.org.br
http://makeall.wordpress.com/
http://planeta.postgresql.org.br/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Ribamar Sousa
2008/6/11 Herick Marques <[EMAIL PROTECTED]>:

>
> > ___
> > pgbr-geral mailing list
> > pgbr-geral@listas.postgresql.org.br
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> Amigo, o problema não ocorre no script que faz a criação/ alteração da
> tabela, está ocorrendo na cláusula de verificação.
> Esse Alter Table, tato da maneira como eu tinha colocado como dessa que
> vc me passou funcionou, o problema continua sendo a verificação da
> existência.
> Criar uma SP eu acho desnecessário pois esse script vai ser executado
> poucas vezes, só quando as bases de clientes sofrerem atualização, e aí
> está a razão de eu não querer que apareça mensagem de erro.
>

Parece-me que o código está misturando SQL puro com PL/pgSQL.
Esse deve ser o prblema.

>
> --
> * Hérick N. Marques
> BR express *
> Fone: 16 3307.7600
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Ribamar FS - [EMAIL PROTECTED]
http://ribafs.net
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Herick Marques
Bom, deixa eu tentar explicar de uma forma mais clara.
Eu preciso executar a alteração na tabela baseada na existência ou não 
de um campo.

Esse campo, se eu der um Select eu sei se ele existe ou não de acordo 
com a mensagem que o pgAdmin me retorna, pois se existir, ele me mostra 
os dados desse campo, se não ele me dá a mensagem de que o campo não 
existe. Então retornar é o de menos.
Eu preciso criar a cláusula que me diz se eu devo ou não executar a 
alteração na tabela, é isso que não estou conseguindo fazer.
Acabei de receber um e-mail do Ribamar, me dizendo que a causa pode ser 
a mistura de SQL puro com PL/pgSQL. Se for isso, alguém pode me dar um 
exemplo de como fazer essa cláusula?
Agradeço pelo empenho do pessoal!


-- 
* Hérick N. Marques
BR express *
Fone: 16 3307.7600
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Osvaldo Rosario Kussama
Herick Marques escreveu:
> Ribamar Sousa escreveu:
>> 2008/6/11 Herick Marques <[EMAIL PROTECTED] 
>> >:
>>
>> Evandro Ricardo Silvestre escreveu:
>> > Herick Marques wrote:
>> >
>> Olá Evandro, obrigado pela ajuda, mas o problema continua.
>> Usei o script que vc me passou fiz a alteração necessária, mas ele não
>> executa no console do PG.
>> usei o seguinte script:
>> SELECT a.relname AS Tabela, b.attname AS Campo
>>  FROM pg_class a
>>  JOIN pg_attribute b ON (b.attrelid = a.relfilenode)
>>  WHERE  b.attstattarget = -1 AND
>> a.relname = 'allst' AND  b.attname = 'blocker';
>>  IF NOT FOUND THEN
>>ALTER TABLE allst ADD blocker BOOLEAN NOT NULL
>>  END IF;
>>
>> O console dá o seguinte erro:
>> ERROR: syntaxe error at or near "IF" SLQ state: 42601 Character: 218
>>
>> Sabe me dizer se eu preciso passar mais algum comando, tipo um
>> execute,
>> ou colocar o script dentro de um begin/end, etc?
>> Obrigado!
>>
>>
>> No alter table deve ser assim:
>>
>>ALTER TABLE allst ADD COLUMN blocker BOOLEAN NOT NULL
>>
>>   
> Amigo, o problema não ocorre no script que faz a criação/ alteração da 
> tabela, está ocorrendo na cláusula de verificação.

O IF não é um comando SQL.
Para os comandos SQL válidos veja:
http://www.postgresql.org/docs/current/interactive/sql-commands.html


> Esse Alter Table, tato da maneira como eu tinha colocado como dessa que 
> vc me passou funcionou, o problema continua sendo a verificação da 
> existência.
> Criar uma SP eu acho desnecessário pois esse script vai ser executado 
> poucas vezes, só quando as bases de clientes sofrerem atualização, e aí 
> está a razão de eu não querer que apareça mensagem de erro.

Se você quizer executar um comando restrito à PL/PgSQL então a criação 
de uma função não é *desnecessária*.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Artur Sampaio
Não existe uma forma de executar comandos ou scripts PL/PgSQL no console, 
sem a necessidade de compilar na base de dados na forma de uma Function?
Talvez no formato
$$
DECLARE
BEGIN
EXCEPTION
END;
$$
LANGUAGE plpgsql;

Alguma sugestão?
Obrigado,

Artur Sampaio


- Original Message - 
From: "Osvaldo Rosario Kussama" <[EMAIL PROTECTED]>
To: "Comunidade PostgreSQL Brasileira" 
Sent: Wednesday, June 11, 2008 3:19 PM
Subject: Re: [pgbr-geral] Script à prova de falhas.


Herick Marques escreveu:
> Ribamar Sousa escreveu:
>> 2008/6/11 Herick Marques <[EMAIL PROTECTED]
>> <mailto:[EMAIL PROTECTED]>>:
>>
>> Evandro Ricardo Silvestre escreveu:
>> > Herick Marques wrote:
>> >
>> Olá Evandro, obrigado pela ajuda, mas o problema continua.
>> Usei o script que vc me passou fiz a alteração necessária, mas ele 
>> não
>> executa no console do PG.
>> usei o seguinte script:
>> SELECT a.relname AS Tabela, b.attname AS Campo
>>  FROM pg_class a
>>  JOIN pg_attribute b ON (b.attrelid = a.relfilenode)
>>  WHERE  b.attstattarget = -1 AND
>> a.relname = 'allst' AND  b.attname = 'blocker';
>>  IF NOT FOUND THEN
>>ALTER TABLE allst ADD blocker BOOLEAN NOT NULL
>>  END IF;
>>
>> O console dá o seguinte erro:
>> ERROR: syntaxe error at or near "IF" SLQ state: 42601 Character: 218
>>
>> Sabe me dizer se eu preciso passar mais algum comando, tipo um
>> execute,
>> ou colocar o script dentro de um begin/end, etc?
>> Obrigado!
>>
>>
>> No alter table deve ser assim:
>>
>>ALTER TABLE allst ADD COLUMN blocker BOOLEAN NOT NULL
>>
>>
> Amigo, o problema não ocorre no script que faz a criação/ alteração da
> tabela, está ocorrendo na cláusula de verificação.

O IF não é um comando SQL.
Para os comandos SQL válidos veja:
http://www.postgresql.org/docs/current/interactive/sql-commands.html


> Esse Alter Table, tato da maneira como eu tinha colocado como dessa que
> vc me passou funcionou, o problema continua sendo a verificação da
> existência.
> Criar uma SP eu acho desnecessário pois esse script vai ser executado
> poucas vezes, só quando as bases de clientes sofrerem atualização, e aí
> está a razão de eu não querer que apareça mensagem de erro.

Se você quizer executar um comando restrito à PL/PgSQL então a criação
de uma função não é *desnecessária*.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-11 Thread Euler Taveira de Oliveira
Artur Sampaio wrote:

> Não existe uma forma de executar comandos ou scripts PL/PgSQL no console, 
> sem a necessidade de compilar na base de dados na forma de uma Function?
Não. SQL não é procedural; por isso existem as linguagens procedurais. 
Qual a resistência em relação a uma pl/*?


-- 
   Euler Taveira de Oliveira
   http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-12 Thread Artur Sampaio
Na verdade não se trata de resistência. Sou adepto do uso de PL.
Mas realmente não vejo sentido em compilar uma SP só para atualização da 
base de clientes.

Vamos analisar a situação em mais detalhes:
Vários clientes já rodam a aplicação, e fecharemos um novo release com 
melhorias e correções. Vamos chamá-la de versão 5, por exemplo.
Alguns clientes ainda rodam a versão 3.. outros rodam a versão 4.
O campo em questão foi criado na versão 4; então para fazer a atualização 
alguns clientes deverão criar o novo campo e outros não. Depois que todos 
utilizarem a versão 5, o script nunca mais será usado.
Por isso não vejo motivos para a criação de uma SP, que só será usada 1 
única vez, e somente em alguns clientes.

Obrigado,

Artur Sampaio


- Original Message - 
From: "Euler Taveira de Oliveira" <[EMAIL PROTECTED]>
To: "Comunidade PostgreSQL Brasileira" 
Sent: Wednesday, June 11, 2008 11:28 PM
Subject: Re: [pgbr-geral] Script à prova de falhas.


Artur Sampaio wrote:

> Não existe uma forma de executar comandos ou scripts PL/PgSQL no console,
> sem a necessidade de compilar na base de dados na forma de uma Function?
Não. SQL não é procedural; por isso existem as linguagens procedurais.
Qual a resistência em relação a uma pl/*?


-- 
   Euler Taveira de Oliveira
   http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-12 Thread Evandro Ricardo Silvestre
Artur Sampaio wrote:
> Na verdade não se trata de resistência. Sou adepto do uso de PL.
> Mas realmente não vejo sentido em compilar uma SP só para atualização da 
> base de clientes.
>
> Vamos analisar a situação em mais detalhes:
> Vários clientes já rodam a aplicação, e fecharemos um novo release com 
> melhorias e correções. Vamos chamá-la de versão 5, por exemplo.
> Alguns clientes ainda rodam a versão 3.. outros rodam a versão 4.
> O campo em questão foi criado na versão 4; então para fazer a atualização 
> alguns clientes deverão criar o novo campo e outros não. Depois que todos 
> utilizarem a versão 5, o script nunca mais será usado.
> Por isso não vejo motivos para a criação de uma SP, que só será usada 1 
> única vez, e somente em alguns clientes.
>   
Crie o Script, faça o que tem que fazer e apague-o ao final de tudo!
Faça uma SP que vc passa por parametro o tabela, campo e o tipo de dados 
e a SP verifica e cria.
Dessa forma, nem ALTER TABLE vc precisa mandar, pois ele já estará 
dentro da SP.

Evandro
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-12 Thread Artur Sampaio
Essa me parece uma solução aceitável. Posso inclusive utilizar essa SP para 
fazer auditoria na estrutura de dados, logando usuario, data, 
características antigas e novas.
Essa procedure poderia receber um parâmetro para saber qual a alteração na 
tabela: se criar campo, alterar  campo ou excluir campo; ou então pensar em 
3 SP especializadas, mas acho que haveria muita replicação de código nesta 
situação.

Obrigado,

Artur Sampaio


- Original Message - 
From: "Evandro Ricardo Silvestre" <[EMAIL PROTECTED]>
To: "Comunidade PostgreSQL Brasileira" 
Sent: Thursday, June 12, 2008 1:32 PM
Subject: Re: [pgbr-geral] Script à prova de falhas.


Artur Sampaio wrote:
> Na verdade não se trata de resistência. Sou adepto do uso de PL.
> Mas realmente não vejo sentido em compilar uma SP só para atualização da
> base de clientes.
>
> Vamos analisar a situação em mais detalhes:
> Vários clientes já rodam a aplicação, e fecharemos um novo release com
> melhorias e correções. Vamos chamá-la de versão 5, por exemplo.
> Alguns clientes ainda rodam a versão 3.. outros rodam a versão 4.
> O campo em questão foi criado na versão 4; então para fazer a atualização
> alguns clientes deverão criar o novo campo e outros não. Depois que todos
> utilizarem a versão 5, o script nunca mais será usado.
> Por isso não vejo motivos para a criação de uma SP, que só será usada 1
> única vez, e somente em alguns clientes.
>
Crie o Script, faça o que tem que fazer e apague-o ao final de tudo!
Faça uma SP que vc passa por parametro o tabela, campo e o tipo de dados
e a SP verifica e cria.
Dessa forma, nem ALTER TABLE vc precisa mandar, pois ele já estará
dentro da SP.

Evandro
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Script à prova de falhas.

2008-06-12 Thread Roberto Mello
2008/6/12 Artur Sampaio <[EMAIL PROTECTED]>:
> Na verdade não se trata de resistência. Sou adepto do uso de PL.
> Mas realmente não vejo sentido em compilar uma SP só para atualização da
> base de clientes.
>
> Vamos analisar a situação em mais detalhes:
> Vários clientes já rodam a aplicação, e fecharemos um novo release com
> melhorias e correções. Vamos chamá-la de versão 5, por exemplo.
> Alguns clientes ainda rodam a versão 3.. outros rodam a versão 4.

O que eu faco na nossa aplicacao e' que mantemos as alteracoes ao BD
no subversion, dentro de diretorios das respectivas versoes `as quais
as alteracoes pertencem.

O banco de dados tem uma pequena tabela que indica a versao atual.
Para fazer o upgrade basta verificar qual a versao atual, e rodar os
scripts de atualizacao posteriores, dentro de blocos transacionais.

Funciona muito bem.

Roberto

-- 
http://blog.divisiblebyfour.org/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral