Thanks!


> On Jul 9, 2019, at 7:43 PM, Tony <t...@giaccone.org> wrote:
> 
> Joe, 
> 
> Delete the schema name in the modeler. Just leave it empty at the highest 
> level and propagate it down. There’s a button to the left of the text field.
> 
> That will remove the schema entry from the model which will remove it from 
> the XML. Then at runtime the URL provides the schema. Easy Peasy...
> 
> Tony Giaccone
> 
>> On Jul 8, 2019, at 3:06 PM, Joe Baldwin <jfbald...@earthlink.net> wrote:
>> 
>> Tony,
>> 
>>> In our models we never specify the schema
>> 
>> 
>> This sounds like what I was experimenting with.  (Except in my case I 
>> thought it was “hacking” - I feel much better now :) )   I just manually 
>> edited the map.xml file and deleted the schema - cayenne-runtime seems fine 
>> with using the connection-url to define the db namespace.
>> 
>> Did you set this in the CayenneModeler or via manual editing of the config 
>> files?
>> 
>> Thanks
>> Joe
>> 
>> 
>> 
>>> On Jul 8, 2019, at 9:23 AM, Tony <t...@giaccone.org> wrote:
>>> 
>>> Joe,
>>> 
>>> We use cayenne with both drone and Jenkins. In our models we never specify 
>>> the schema. It’s always left unspecified I.e. blank.
>>> 
>>> When you do this the schema is determined by the JDBC URL. In our world the 
>>> schemas are always the same so technically we could specify them but I 
>>> personally feel the flexibility of determining database instance and schema 
>>> from the environment is far superior to coding either in the model.
>>> 
>>> We set shell variables to the JDBC url and then pick them up form the 
>>> environment. 
>>> 
>>> This works flawlessly for us.
>>> 
>>> 
>>> 
>>> Tony Giaccone
>>> 
>>>> On Jul 6, 2019, at 9:36 PM, Joe Baldwin <jfbald...@earthlink.net> wrote:
>>>> 
>>>> I am trying to genericize the map.xml for multiple instances with multiple 
>>>> dbnames (looking for a “use <dbname>” analogue for cayenne config files - 
>>>> or a better idea if you have one)
>>>> 
>>>> Details ...
>>>> 
>>>> Context:
>>>> cayenne: 4.0.1
>>>> db: mysql 8.0.16
>>>> dbname: “cms" / “cmstest" / "cms_<bunch of others suffixes>” (all 
>>>> referring to the same schema)
>>>> 
>>>> Goals:
>>>> - migrate to cicd (gradle, git, jenkins, automated testing,etc)
>>>> - support testing configurations, as well as multiple instances of the 
>>>> same app but with unique dbnames
>>>> 
>>>> Prob:
>>>> While trying to migrate to fully automated testing (using junit-5) I hit a 
>>>> snag:
>>>> - the cayenne map.xml has the datasource name (“cms” in this instance) 
>>>> embedded in the map.xml config file:
>>>> 
>>>> <property name="defaultSchema" value="cms”/>
>>>> ...
>>>> <db-entity name="admin" schema="cms">
>>>>     …
>>>> </db-entity>
>>>> 
>>>> So the general idea I had was to create a tmp-test database (cmstest), run 
>>>> the junit tests for unit & complex unit testing configured using gradle, 
>>>> then move on to a more complex testing config downstream.   When I deploy 
>>>> it will be to multiple instances (with unique dbnames).
>>>> 
>>>> But I cannot figure out how to genericize this map.xml so that I can 
>>>> easily change the datasource name - I could throw sed/awk at it - to 
>>>> change all the schema-name-refs, but I was hoping for something a bit more 
>>>> cayenne-oriented (and less brittle than sed/awk).
>>>> 
>>>> Ideally, I am searching for a cayenne-analogue to mysql “use <dbname>” so 
>>>> that I could change the datasource name in one location (vs 25).
>>>> 
>>>> Thanks
>>>> Joe
>>>> PS if you have any other gradle tricks that you rely on, please do send a 
>>>> link
>>>> 
>> 

Reply via email to