H2: comment définir et de schéma par défaut de la base de données?
Je suis en utilisant Liquibase
pour ma base de données mises à jour et de le tester contre H2
.
Je suis en utilisant Spring
pour configurer les propriétés. J'utilise
dataSource.setUrl("jdbc:h2:mem:test_common");
pour se connecter à test_common
base de données, mais qu'il ne fonctionne pas.
J'ai réalisé que dans H2
database != Schema
, j'ai donc essayé de mettre un schéma par défaut pour test_common
comme
dataSource.setUrl("jdbc:h2:mem:test_common;INIT=CREATE SCHEMA test_common\\; SET SCHEMA test_common");
mais cela n'a pas fonctionné, je vois des journaux comme
INFO 5/26/14 2:24 PM:liquibase: Dropping Database Objects in schema: TEST_COMMON.PUBLIC
INFO 5/26/14 2:24 PM:liquibase: Creating database history table with name: PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: Creating database history table with name: PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: Successfully released change log lock
INFO 5/26/14 2:24 PM:liquibase: Successfully acquired change log lock
INFO 5/26/14 2:24 PM:liquibase: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-1.xml::05192014.1525::h2: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-1.xml::05192014.1525::h2: Table network created
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-1.xml::05192014.1525::h2: ChangeSet liquibase/2014/1-1.xml::05192014.1525::h2 ran successfully in 5ms
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-1.xml::05192014.1525::h2: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: Reading from PUBLIC.DATABASECHANGELOG
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: New row inserted into network
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: ChangeSet liquibase/2014/1-2.xml::05192014.1525::h2 ran successfully in 5ms
INFO 5/26/14 2:24 PM:liquibase: liquibase/changelog.xml: liquibase/2014/1-2.xml::05192014.1525::h2: Reading from PUBLIC.DATABASECHANGELOG
Comment puis-je configurer un schéma par défaut et le nom de base de données dans H2?
Pourquoi ne pas connecter à
Oui, il n', à l'aide de
test_common
db de travail? Est-ce que votre code ne programmatique de recherche de l'db/nom du schéma?Oui, il n', à l'aide de
@Configuration
classe dans Spring Framework
. Voir stackoverflow.com/questions/23874693/...OriginalL'auteur daydreamer | 2014-05-26
Vous devez vous connecter pour publier un commentaire.
Schéma par défaut est
PUBLIC
Pour l'enregistrement, la
de la Grammaire SQL
page de H2 à la Base de données du site pour leDÉFINIR le SCHÉMA
commande dit:Que la documentation note également que vous pouvez spécifier le schéma par défaut lors de la connexion:
Une seule base de données
Comme pour l'accès aux différentes bases de données, H2 ne prend pas en charge la Norme SQL concepts de
CLUSTER
ouCATALOG
. Vous vous connectez à une base de données spécifique (catalogue) dans le cadre de votre URL JDBC. Les connexions à la base de données sont limités à une seule base de données. Voir la Question, Vous pouvez créer plusieurs catalogues dans H2? avec une Réponse par Thomas Mueller.Vous pouvez ouvrir une autre connexion à une autre base de données, mais il serait tout à fait distincte.
Donc parler d'une “base de données par défaut” n'a pas de sens avec H2 Base de données.
OriginalL'auteur Basil Bourque
On dirait que vous êtes en interaction avec Liquibase par le biais de l'Api Java. Il y a un
setDefaultSchemaName()
méthode sur l'objet de Base de données que vous pouvez utiliser pour définir un autre schéma par défaut.OriginalL'auteur Nathan Voxland