Re: Oracle Apex Resource/Links Needed

From: Ethan Post <post.ethan_at_gmail.com>
Date: Mon, 6 Jan 2020 13:07:27 -0600
Message-ID: <CAMNhnU0LrHuh_An4dTRbg5mqp8GfUT-gRbKrcAxStMHcARqN9w_at_mail.gmail.com>



Quick follow up. Are your developers using a single DB for dev or are they able to each have their own? I am thinking about how Apex changes would get merged. Are files exported, diffed, and changes merged if there have been changes by another team member? I am sure I will figure more of this out once I get into the weeds, just wondering at the moment.

<plug>
I am interested in getting deep into Apex in coming year and as such I am open to paid opportunities to work with it. Apex is important in rounding out the skills I already have to build the things I want to build. If anyone hears about anything (75% remote, no relo, part of full time, I am U.S. CST based), let me know.
</plug>

Thanks!
Ethan
e-t-h-a-n.com

On Fri, Jan 3, 2020 at 9:20 AM Ethan Post <post.ethan_at_gmail.com> wrote:

> Big thanks. This is good.
>
> On Fri, Jan 3, 2020 at 2:15 AM Tim Hall <tim_at_oracle-base.com> wrote:
>
>> Hi.
>>
>> We are playing around with this at the moment. This is a very rough plan,
>> but I'm interested to get any feedback if someone out there knows better.
>>
>> Development:
>>
>> How to get apps exported consistently? Humans have a habit of forgetting
>> to pick the right options. :) Use APEXExport.
>>
>> https://oracle-base.com/articles/misc/apexexport
>>
>> Presumably, it's going into Git. We use BitBucket, but anything will do.
>>
>> Deployment:
>>
>> The export gives you a SQL file, so you can just run it in a database.
>> You can manually script a load, but it makes sense to include this into a
>> normal database deploy process. There are a number of things you can use
>> here. I know Flyway is popular, but we are starting to use Liquibase. These
>> articles are not "live", as I'm waiting for a SQLcl bug to be fixed to
>> release both, but the bug doesn't affect how I normally use SQLcl for this
>> task.
>>
>>
>> https://oracle-base.com/articles/misc/liquibase-automating-your-database-deployments
>>
>>
>> https://oracle-base.com/articles/misc/sqlcl-automating-your-database-deployments-using-sqlcl-and-liquibase
>>
>>
>> We will probably use the SQLcl version going forward, as it's a little
>> neater than the original implementation IMHO.
>>
>> The good thing about Liquibase (and others) is you can make the APEX
>> deployment part of your normal process, which includes table and code
>> changes and seed data scripts. The changelog controls the order the stuff
>> is loaded into the database, so the commit of a change the changelog will
>> trigger the CI/CD pipeline. We use TeamCity, but I use GitLab Pipelines for
>> one project. They all do pretty much the same thing. So the pipeline will
>> do something like this:
>>
>> - Pull the latest stuff from Git for the relevant branch. (DDL, DML,
>> stored procedures etc.)
>> - Run Liquibase using the changelog, which applies everything (not
>> already applied) in order.
>>
>> We do CI/CD for Java and I use it for an infrastructure project where it
>> redeploys apps to an infrastructure build on Docker. We have all the pieces
>> for this APEX deployment, but haven't yet threaded it all together. I don't
>> think it will be hard to finalise the set up, but getting people on-bard to
>> use it instead of doing their typical random crap is a bigger task. :) The
>> issue is you really need everyone on board for CI/CD to work properly and a
>> lot of our database development has very little discipline. The middle tier
>> folks have more commitment to this sort of stuff.
>>
>> Cheers
>>
>> Tim...
>>
>>
>> On Fri, Jan 3, 2020 at 4:48 AM Ethan Post <post.ethan_at_gmail.com> wrote:
>>
>>> So I am playing around with Apex, impressed so far. The questions are
>>> coming up in terms of how one builds a CI/CD/upgrade/patch pipeline with
>>> APEX.
>>>
>>> Some tables contain seed data? Where is that stored? How to I ensure
>>> things like old see data is updated in case A, in case B left alone if
>>> exists, in case C, entire table is replaced?
>>>
>>> Additions/deletions of columns over time. How are the changes managed.
>>> How do I inject conversion script before or after.
>>>
>>> So basically all the complexities that come with managing an application
>>> that is alive in the open at multiple customer sites (hot patches and all),
>>> and make a change, build, and deploy, reliably.
>>>
>>> Looking for a resource which covers this type of content and deals with
>>> plenty of use cases and edge cases.
>>>
>>> Does this exist? If so please let me know.
>>>
>>> Thanks,
>>> Ethan Post
>>> e-t-h-a-n.com
>>> _at_poststop
>>>
>>>
>>>

--
http://www.freelists.org/webpage/oracle-l
Received on Mon Jan 06 2020 - 20:07:27 CET

Original text of this message