Jooq для различных условий

Я использую Jooq с Mysql в своем приложении. Наш конвейер выпуска следует за dev -> stage -> prod .

Все env имеют одинаковую схему, но проблема в том, что они могут иметь следующие переменные:

  1. У них может быть другое имя базы данных (dev_db, stage_db, prod_db).
  2. У них могут быть разные URL-адреса БД и учетные данные.

В настоящее время я получил следующий код.

public static void init() {

    Target l_target =   new Target();
    System.out.println("My directory is::"+l_target.getPackageName());
    l_target.setDirectory("src/main/java");
    l_target.setPackageName("com.my.paas.css.entity");
    Configuration configuration = new Configuration()
            .withJdbc(new Jdbc()
                    .withDriver("com.mysql.jdbc.Driver")
                    .withUrl("jdbc:mysql://localhost:3306/paas")
                    .withUser("root"))
            .withGenerator(new Generator()
                    .withDatabase(new Database()
                            .withName("org.jooq.meta.mysql.MySQLDatabase")
                            .withIncludes(".*")
                            .withExcludes("")
                            .withInputSchema("paas"))
                    .withTarget(l_target));

    try {
        GenerationTool.generate(configuration);
    } catch (Exception ex) {
        System.out.println();
        ex.printStackTrace();
    }
}

Я хочу понять, как я могу сделать генерацию кода адаптируемой к среде?

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
176
1

Ответы 1

Программная конфигурация

Вы уже используете конфигурацию программной генерации кода, поэтому адаптация элементов конфигурации должна быть тривиальной. Например, чтобы выбрать правильный URL-адрес JDBC для данного подключения к базе данных, вы будете использовать локальную переменную или метод вместо жесткого кодирования URL-адреса:

// Instead of
.withUrl("jdbc:mysql://localhost:3306/paas")

// write...
.withUrl(jdbcUrl())

И реализовать jdbcUrl() в зависимости от окружения.

Схемы сопоставления

Еще один набор функций, который вы, возможно, захотите изучить, — это функция отображения схемы, которую вы можете применить:

Обратите внимание, что нет ничего необычного в том, чтобы возвращать сгенерированный код и создавать из него библиотеку, а не повторно генерировать код в каждой среде.

Как мы можем генерировать во время генерации кода? У нас есть работа Дженкинса для процесса сборки. У нас нет доступа к БД с сервера Jenkins (где на самом деле происходит генерация кода)?

Sandeep Pandey 13.03.2019 04:37

@SandeepPandey: Не могли бы вы задать новый вопрос? Ваш новый вопрос на самом деле не связан с этим.

Lukas Eder 13.03.2019 09:54

Другие вопросы по теме