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

          Roland Benedetti created issue -
          Roland Benedetti made changes -
          Field Original Value New Value
          Status Open [ 1 ] Confirmed [ 10037 ]
          Roland Benedetti made changes -
          Status Confirmed [ 10037 ] Backlog [ 10000 ]
          Roland Benedetti made changes -
          Status Backlog [ 10000 ] Specification [ 10002 ]
          Assignee Roland Benedetti [ roland.benedetti@ez.no ]
          Sylvain Guittard made changes -
          Link This issue relates to EZP-27225 [ EZP-27225 ]
          Roland Benedetti made changes -
          Status Specification [ 10002 ] Specification Done [ 10003 ]
          Assignee Roland Benedetti [ roland.benedetti@ez.no ]
          Roland Benedetti made changes -
          Sprint [2.5] - Sprint 1 [ 120 ]
          Roland Benedetti made changes -
          Rank Ranked higher
          Roland Benedetti made changes -
          Status Specification Done [ 10003 ] Development [ 3 ]
          Assignee Roland Benedetti [ roland.benedetti@ez.no ]
          Sylvain Guittard made changes -
          Issue Type Bug [ 1 ] Story [ 7 ]
          Workflow EZEE Development Workflow [ 136076 ] EZEE and EZP Story Workflow [ 136189 ]
          Story Points 13
          Andrzej Longosz made changes -
          Assignee Roland Benedetti [ roland.benedetti@ez.no ] Andrzej Longosz [ andrzej.longosz@ez.no ]
          Andrzej Longosz logged work - 17/Jan/19 6:00 PM
          • Time Spent:
            1 hour, 30 minutes
             

            discovery

          Andrzej Longosz made changes -
          Link This issue is blocked by EZP-24842 [ EZP-24842 ]
          Andrzej Longosz made changes -
          Link This issue is blocked by EZP-24842 [ EZP-24842 ]
          Sylvain Guittard made changes -
          Sprint [2.5] - Sprint 1 [ 120 ] [2.5] - Sprint 2 [ 121 ]
          Sylvain Guittard made changes -
          Rank Ranked higher
          Andrzej Longosz made changes -
          Remaining Estimate 0 minutes [ 0 ]
          Time Spent 1 hour, 30 minutes [ 5400 ]
          Worklog Id 69169 [ 69169 ]
          Andrzej Longosz logged work - 22/Jan/19 2:48 PM
          • Time Spent:
            30 minutes
             

            analysis of needed steps

          Sylvain Guittard made changes -
          Sprint [2.5] - Sprint 2 [ 121 ] [2.5] - Sprint 3 [ 122 ]
          Sylvain Guittard made changes -
          Rank Ranked higher
          Sylvain Guittard made changes -
          Story Points 13 8
          Andrzej Longosz made changes -
          Time Spent 1 hour, 30 minutes [ 5400 ] 2 hours [ 7200 ]
          Worklog Id 69202 [ 69202 ]
          Sylvain Guittard made changes -
          Story Points 8 5
          Sylvain Guittard made changes -
          Sprint [2.5] - Sprint 3 [ 122 ] [2.5] - Sprint 4 [ 123 ]
          Sylvain Guittard made changes -
          Rank Ranked lower
          Andrzej Longosz made changes -
          Link This issue is blocked by EZP-30149 [ EZP-30149 ]
          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
          Andrzej Longosz made changes -
          Link This issue relates to EZEE-2719 [ EZEE-2719 ]
          Andrzej Longosz made changes -
          Link This issue relates to EZEE-2720 [ EZEE-2720 ]
          Andrzej Longosz made changes -
          Summary PostgreSQL support As a Maintainer I want to install eZ Platform OSS on PostgreSQL database
          Andrzej Longosz made changes -
          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}}|https://github.com/ezsystems/doctrine-dbal-schema] Symfony Bundle.
          Andrzej Longosz made changes -
          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}}|https://github.com/ezsystems/doctrine-dbal-schema] Symfony Bundle.
          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}}|https://github.com/ezsystems/doctrine-dbal-schema] Symfony Bundle.
          Andrzej Longosz made changes -
          Status Development [ 3 ] Development Done [ 5 ]
          Fix Version/s 2.5.0-rc1 [ 15103 ]
          Andrzej Longosz made changes -
          Comment [ Yaml schema definition/configuration (eZ custom format) preview: https://github.com/ezsystems/ezpublish-kernel/commit/160398cd8dc841e4547d30a7bc16298b1987a801
          Please note that this prototype might change due to various reasons before 2.5.0 final. ]
          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
          Dominika Kurek made changes -
          Status Development Done [ 5 ] Documentation [ 10010 ]
          Show
          Dominika Kurek added a comment - Doc PR: https://github.com/ezsystems/developer-documentation/pull/553
          Dominika Kurek made changes -
          Status Documentation [ 10010 ] Documentation Done [ 10040 ]
          Assignee Andrzej Longosz [ andrzej.longosz@ez.no ]
          Dominika Kurek made changes -
          Status Documentation Done [ 10040 ] QA [ 10008 ]
          Andrzej Longosz made changes -
          Link This issue relates to EZP-30061 [ EZP-30061 ]
          Sylvain Guittard made changes -
          Status QA [ 10008 ] QA Done [ 10007 ]
          Sylvain Guittard made changes -
          Status QA Done [ 10007 ] Closed [ 6 ]
          Resolution Done [ 9 ]
          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...
          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 -

          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
          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
          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 .
          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open Confirmed Confirmed
          14s 1 Roland Benedetti 19/Dec/18 2:26 PM
          Confirmed Confirmed Backlog Backlog
          5s 1 Roland Benedetti 19/Dec/18 2:26 PM
          Backlog Backlog Specification Specification
          1m 13s 1 Roland Benedetti 19/Dec/18 2:27 PM
          Specification Specification Specification Done Specification Done
          9s 1 Roland Benedetti 19/Dec/18 2:27 PM
          Specification Done Specification Done Development Development
          6m 3s 1 Roland Benedetti 19/Dec/18 2:33 PM
          Development Development Development Done Development Done
          76d 20h 54m 1 Andrzej Longosz 06/Mar/19 11:28 AM
          Development Done Development Done Documentation Documentation
          7d 3h 10m 1 Dominika Kurek 13/Mar/19 2:38 PM
          Documentation Documentation Documentation Done Documentation Done
          23h 31m 1 Dominika Kurek 14/Mar/19 2:10 PM
          Documentation Done Documentation Done QA QA
          8s 1 Dominika Kurek 14/Mar/19 2:10 PM
          QA QA QA Done QA Done
          15d 1h 11m 1 Sylvain Guittard 29/Mar/19 3:21 PM
          QA Done QA Done Closed Closed
          10s 1 Sylvain Guittard 29/Mar/19 3:21 PM

            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