+1 for `--action` option with "create", "drop",
"create-and-drop", and
"none"
not sure if as default value is better "create" or "create-and-drop"
On 3 February 2016 at 17:21, Steve Ebersole <steve(a)hibernate.org> wrote:
For anyone familiar using SchemaExport from the command line... Am
I
interpreting this correctly when I see that `--create` means "just create"
and `--drop` means "just drop"? From what I can tell, passing both seems to
(looking at the code) cause just drop to happen.
Anyone else find that extremely counter-intuitive? Any objection to
instead exposing an `--action` option that can be one of "create",
"drop",
"create-and-drop", and "none"? And where "create-and-drop"
is the default?
On Wed, Feb 3, 2016 at 6:50 AM Steve Ebersole <steve(a)hibernate.org> wrote:
> The API does need to change. So we can leave the classes, but every
usage
> of them would need to be adjusted. Well every usage other than CLI,
which
> you mention, which is a decent point. So I'll leave the classes in
place,
> but change the contracts.
>
> On Wed, Feb 3, 2016 at 12:58 AM Gunnar Morling <gunnar(a)hibernate.org>
> wrote:
>
>> When you say dropping, what would be the alternative for CLI users? It
>> seems like a strong change to do in a minor revision.
>>
>> What are the required changes you need to do here? My hope would have
>> been that the API of these tools would not have to change.
>>
>> 2016-02-02 22:10 GMT+01:00 Steve Ebersole <steve(a)hibernate.org>:
>> > Part of the work here is going to require significant changes to
>> > org.hibernate.tool.hbm2ddl.SchemaExport,
>> > org.hibernate.tool.hbm2ddl.SchemaUpdate and
>> > org.hibernate.tool.hbm2ddl.SchemaValidator. Significant as in current
>> > usages would not work at all. So does it make sense to do those
>> changes, or
>> > to simply drop those classes?
>> >
>> >
>> > On Fri, Jan 29, 2016 at 1:15 PM Steve Ebersole <steve(a)hibernate.org>
>> wrote:
>> >>
>> >> I am debating with myself about reusing
>> >> `javax.persistence.schema-generation.database.action` and
>> >> `javax.persistence.schema-generation.scripts.action` in terms of this
>> new
>> >> unified support. The debate point being the fact that we'd have
to
>> have
>> >> those accept an extended range of values which potentially hurts
users
>> in
>> >> terms of JPA provider portability. For example, if they have:
>> >>
>> >> javax.persistence.schema-generation.database.action=validate
>> >>
>> >> Hibernate would understand that, but other providers likely would
not.
>> >> This is beyond the concept of "strict compliance" I started
in SQM in
>> my
>> >> opinion. Here we are moving toward a unification, meaning we expect
>> people
>> >> to use this.
>> >>
>> >> So do we reuse the JPA names?
>> >>
>> >> On a related note.. in regards to the fact that JPA splits action
>> between
>> >> script and database target whereas hbm2ddl defines just a singular
>> action
>> >> value... does anyone know of a real case where someone defines
>> different
>> >> actions between script and database? I mean aside from one being
>> NONE. I
>> >> mean cases where they say we should do "create" for scripts
but send
>> >> "drop-and-create" to the database? That just seems odd to
me. I
>> think we
>> >> have to account for the split since we have to account for JPA, and
>> that
>> >> model fits both. I was just curious
>> >>
>> >>
>> >>
>> >>
>> >> On Fri, Jan 29, 2016 at 12:01 PM Steve Ebersole
<steve(a)hibernate.org
>
>> >> wrote:
>> >>>
>> >>> On Fri, Jan 29, 2016 at 10:40 AM Gunnar Morling <
gunnar(a)hibernate.org
>> >
>> >>> wrote:
>> >>>>
>> >>>> 2016-01-29 17:18 GMT+01:00 Steve Ebersole
<steve(a)hibernate.org>:
>> >>>> > I also plan on adding an @Incubating annotation for just
such
>> things
>> >>>> > :)
>> >>>>
>> >>>> Yes, please. We have an annotation @Experimental in OGM which
we
use
>> >>>> for tagging APIs under development.
>> >>>
>> >>>
>> >>> See
https://hibernate.atlassian.net/browse/HHH-10487. I also
>> started a
>> >>> separate discussion about this on the dev list.
>> >>>
>> >>>
>> >>> BTW, as an extension to changing SchemaManagementTool another
thing
>> I'd
>> >>> like to add is some hook account for Envers use cases.
Specifically
>> the
>> >>> idea there is to be able to do a few things:
>> >>> 1) perform a selective create/drop. selective in terms of just
>> certain
>> >>> objects. This may be achievable through the new filter concept,
>> although
>> >>> we'd at least need a way to identify Envers tables from
non-Envers
>> tables.
>> >>> Think of starting to use Hibernate+Envers on a schema that already
>> exists.
>> >>> 2) perform "actions". This is maybe beyond "schema
tooling";
perhaps
>> it
>> >>> is more of a SessionFactory boot concept. But one thing Envers
>> misses today
>> >>> that would be good to add is the ability to "prime" the
audit
tables.
>> >>> Meaning, for audited entities that do not have entries in their
audit
>> table,
>> >>> create one. This for sure goes beyond simple SQL statements
though.
>>
>
_______________________________________________
hibernate-dev mailing list
hibernate-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev