Calling Developers!
We are reenergizing our code contribution process! Learn More

What are the Slack Archives?

It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.

Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..

Hey there, it seems that Spryker is prepared to handle database connections to read replicas [1], [2

Options
U013KSS3MM0
U013KSS3MM0 Posts: 14 🧑🏻‍🚀 - Cadet

Hey there, it seems that Spryker is prepared to handle database connections to read replicas [1], [2]. Can we assume that it's working out of the box? Is there anything to consider using it?

[1] https://github.com/spryker/propel/blob/3.29.1/src/Spryker/Shared/Propel/PropelConstants.php#L166
[2] https://github.com/spryker-shop/suite/blob/1.7/config/Shared/config_default.php#L260

Comments

  • Stanislav Matveyev
    Stanislav Matveyev Tech Lead @ Spryker Sprykee Posts: 211 🧑🏻‍🚀 - Cadet
    Options

    It's enabled already in https://github.com/spryker-shop/suite/blob/1.7/config/Shared/config_propel.php#L22
    It uses Propel infrastructure, see the Propel docs http://propelorm.org/documentation/cookbook/replication.html

    so you can use it in your code:

    $con = Propel::getReadConnection(MyTableMap::DATABASE_NAME);
    $books = BookQuery::create()->find($con);
    

    how it works:

        /**
         * Get a read connection for a given datasource.
         *
         * If the slave connection has not been opened, open it using a random read connection
         * setting for the related datasource. If no read connection setting exist, return the master
         * connection. If the slave connection has already been opened, return it.
         *
         * @param string $name The datasource name that is used to look up the DSN
         *                     from the runtime configuration file. Empty name not allowed.
         *
         * @return \Propel\Runtime\Connection\ConnectionInterface A database connection
         */
        public static function getReadConnection($name)
        {
            return self::$serviceContainer->getReadConnection($name);
        }
    
  • U013KSS3MM0
    U013KSS3MM0 Posts: 14 🧑🏻‍🚀 - Cadet
    Options

    Sounds good! We'll give it a try, thanks!