Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-29938

As a Maintainer I want to install eZ Platform OSS on PostgreSQL database

    Details

    • Sprint:
      [2.5] - Sprint 4
    • Story Points:
      5

      Description

      To avoid redundancy we will utilize Doctrine\DBAL\Schema which will provide uniform schema building (meaning database engine-independent).
      Since there's no configuration tool for big scalable schemas, we'll introduce our own custom Yaml format and release all required APIs for it as ezsystems/doctrine-dbal-schema Symfony Bundle.

        Issue Links

          Activity

          Hide
          Andrzej Longosz added a comment -

          Gaetano Giunta If you want to push for introducing totally different technology to import database schema in 3.0, you'll need to reach out to Sylvain Guittard.

          Show
          Andrzej Longosz added a comment - Gaetano Giunta If you want to push for introducing totally different technology to import database schema in 3.0 , you'll need to reach out to Sylvain Guittard .
          Hide
          Gaetano Giunta added a comment -

          ps: as long as the codebase separates cleanly the db-schema-format management to the way it's saved/read from a file, I am a happy camper. Moving from custom-yml to interoperable-xml should be doable in the future. Just don't harcode dependency between the serialized format and its in-memory representation, as was done in ez4 package-mgmt system, which was very tightly coupled to xml

          Show
          Gaetano Giunta added a comment - ps: as long as the codebase separates cleanly the db-schema-format management to the way it's saved/read from a file, I am a happy camper. Moving from custom-yml to interoperable-xml should be doable in the future. Just don't harcode dependency between the serialized format and its in-memory representation, as was done in ez4 package-mgmt system, which was very tightly coupled to xml
          Hide
          Gaetano Giunta added a comment -

          I agree that using eg. xml or the conventions of a foreign tool does introduce some overhead compared to roll-your-own format.

          However I would not consider as beneficial purely the case of having the possibility of using another tool as part of the codebase or include it as part of the default distribution.
          Interoperability is good for end users more than it is for core devs, meaning that if your format of choice has other tooling available even outside php, some users might take advantage from it, even when you have native php code for handling it when bootstrapping ez.
          Benefits might include better/alternative docs, easier schema-comparison scenarios etc... (case in point: the ezdbintegrity extension started out after someone ran schemaspy on existing ez instances, to extract info about foreign keys, it uses precious little schema mgmt code from ezdb php classes)

          ER-designers are a well researched topic, it saddens me to see that still there is no openoffice-of-db-schema-xmls.

          Show
          Gaetano Giunta added a comment - I agree that using eg. xml or the conventions of a foreign tool does introduce some overhead compared to roll-your-own format. However I would not consider as beneficial purely the case of having the possibility of using another tool as part of the codebase or include it as part of the default distribution. Interoperability is good for end users more than it is for core devs, meaning that if your format of choice has other tooling available even outside php, some users might take advantage from it, even when you have native php code for handling it when bootstrapping ez. Benefits might include better/alternative docs, easier schema-comparison scenarios etc... (case in point: the ezdbintegrity extension started out after someone ran schemaspy on existing ez instances, to extract info about foreign keys, it uses precious little schema mgmt code from ezdb php classes) ER-designers are a well researched topic, it saddens me to see that still there is no openoffice-of-db-schema-xmls.
          Hide
          Andrzej Longosz added a comment -

          Gaetano Giunta I've researched this subject in 2017, 2018 and 2019. There are no existing formats for for PHP and Doctrine\DBAL.
          Doctrine focuses its efforts on ORM and for that we can find existing formats. We're using DBAL layer.

          On the other hand, using format for database installation which does not rely on Doctrine\DBAL is pointless, introduces more problems than it solves and adds yet another requirement to the stack, like Python in case of dbmstools. AFAICS schemaspy is a documentation tool, so this is totally unrelated. The closest to what we need is provided by Propel - schema in an XML format. However we are not going to switch to Propel completely, so this is also pointless.

          Moreover, I'm not a huge fan of XML for such use cases - it carries more data about the format than the actual information. However I also haven't found an XML format for Doctrine\DBAL.

          If I missed some PHP library which would provide some format which uses Doctrine\DBAL\Schema, please let me know. We might consider switching in 3.0.

          Show
          Andrzej Longosz added a comment - Gaetano Giunta I've researched this subject in 2017, 2018 and 2019. There are no existing formats for for PHP and Doctrine\DBAL . Doctrine focuses its efforts on ORM and for that we can find existing formats. We're using DBAL layer. On the other hand, using format for database installation which does not rely on Doctrine\DBAL is pointless, introduces more problems than it solves and adds yet another requirement to the stack, like Python in case of dbmstools . AFAICS schemaspy is a documentation tool, so this is totally unrelated. The closest to what we need is provided by Propel - schema in an XML format. However we are not going to switch to Propel completely, so this is also pointless. Moreover, I'm not a huge fan of XML for such use cases - it carries more data about the format than the actual information. However I also haven't found an XML format for Doctrine\DBAL . If I missed some PHP library which would provide some format which uses Doctrine\DBAL\Schema , please let me know. We might consider switching in 3.0.
          Hide
          Gaetano Giunta added a comment -

          Sorry to chime in a bit late... I am sure you did your homework - bu surely there must be existing file formats for db schema definitions that could interoperate with other tools? it might be worth looking into fe. schemaspy and dbmstools...

          Show
          Gaetano Giunta added a comment - Sorry to chime in a bit late... I am sure you did your homework - bu surely there must be existing file formats for db schema definitions that could interoperate with other tools? it might be worth looking into fe. schemaspy and dbmstools...
          Show
          Dominika Kurek added a comment - Doc PR: https://github.com/ezsystems/developer-documentation/pull/553
          Show
          Andrzej Longosz added a comment - Merged for eZ Platform OSS: ezsystems/ezplatform#365 as ezsystems/ezplatform@419c6b4 ezsystems/ezpublish-kernel#2552 as ezsystems/ezpublish-kernel@866d977 ezsystems/doctrine-dbal-schema#1 as ezsystems/doctrine-dbal-schema@7ee37ec
          Show
          Andrzej Longosz added a comment - PRs: eZ Platform meta-repository: https://github.com/ezsystems/ezplatform/pull/365 doctrine-dbal-schema: https://github.com/ezsystems/doctrine-dbal-schema/pull/1 ezpublish-kernel: https://github.com/ezsystems/ezpublish-kernel/pull/2552

            People

            • Assignee:
              Unassigned
              Reporter:
              Roland Benedetti
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 day, 6 hours, 30 minutes
                1d 6h 30m

                  Agile