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.
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???
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.
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…
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.