Pelo hibernate é possivel gerar as tabelas do banco com o seguinte código
File file = new File("./mapeamento/hibernate.cfg.xml");SchemaExport schemaExport = new SchemaExport(new Configuration().configure(file));schemaExport.create(true, true);
Desta maneira, eu consigo gerar as tabelas automaticamente, mas o DataBase eu preciso criar manualmente pois ele não gera automatico…
Alguém sabe como criar o Banco via programação (não precisa necessáriamente ser usando o Hibernate) ???
Abre uma conexão JDBC, cria um Statement, e com o método execute(String) roda os comandos de criação das tabelas, constraints, etc. Meio baixo nível, mas as vezes quebra um galho.
[]s
ssousuke
O problema é que para abrir uma conexão JDBC a String de conexão requer o nome do Banco ( jdbc:postgresql:<nome> ) então como eu faço se é justamente o Banco que eu quero criar???
esb
É você tem razão. Pensei que você queria apenas criar as tabelas.
Vou ver se acho algo, e te falo.
[]s
dudaskank
bem, dei uma pesquisada rápida e vi 2 modos:
via sql, pelo java:
query.execute("CREATE DATABASE `database_name`");
e outro modo iria depender do seu sgbd, por exemplo, o Hypersonic DB, basta vc tentar acessar o seu banco normalmente, se ele não existir, ele é criado no ato.
porém, como vi que vc usa o postgres, vc vai precisar usar o primeiro método, hehehe. sei que o postgres possui algumas tabelas de sistema, conecte em uma delas com o usuário administrador, ou que tenha permissões suficientes, e use o create do postgres mesmo.
flw
ssousuke
Mas tem como eu me conectar com uma tabela do sistema sem dar o nome do BD ao qual ela está…??
não querendo abusar da sua boa vontade, mas vc sabe qual é a String de conexao para o Postgres que eu devo usar nesse caso… Ou seja qual é o nome do banco onde essas tabelas ficam…
Obrigado pela atenção… Falow
esb
Fala ssousuke,
Andei lendo alguns fóruns do PostgreSQL e do MySQL.
Não testei, mas parece que com MySQL dá pra fazer numa boa, basta você omitir o nome do banco de dados na URL de conexão:
No caso do Postgres parece que é necessário informar o banco de dados com o qual você vai se conectar. Alguns membros dos fóruns mencionam uma versão do PostgreSQL para o Debian, mas não dão certeza se é possível resolver esse problema com esse pacote.
[]s
Eduardo
fmeyer
para criar as tabelas nao precisa dessa mirabolancia toda … apnas coloque essa propriedade no seu arq. de configuracao