Coldfusion Report Builder - Как вы можете установить разные источники данных извне между prod / staging / dev? - PullRequest
1 голос
/ 21 апреля 2010

Coldfusion Report Builder великолепен.

Одна маленькая проблема. Мы используем ANT + CFANT для развертывания.

Когда мы создаем отчет, скажем, в источнике данных MyApp_dev в поле разработчика.

Другой наш сервер - это производственный сервер. Он также содержит промежуточную сборку, которая гарантирует, что все идет гладко, прежде чем мы публикуем вживую. (спасибо Аль Эверетту за доведение этого разъяснения до моего сведения.)

Все отлично работает при создании отчета.

Мы развернули отчет на нашем промежуточном сервере, который имеет источник данных MyApp_Staging. Этот сервер также может иметь или не иметь работающее приложение, работающее под MyApp_Live. Муравей выдвигает обновление для Staging просто замечательно.

Запустить отчет, вылетает и горит. Зачем?

Похоже, что отчет ищет источник данных MyApp_Dev, хотя приложение использует источник данных MyApp_Staging.

При копании вокруг я нашел несколько подходов, и я хотел бы сделать этот, последний, идеальный путь с самого начала, вместо того, чтобы возвращаться к тому, чтобы делать десятки отчетов по-другому, когда у меня новый Aha! момент.

1) Очевидное: Передать источник данных в тег cfreport . Не работает для отчетов ColdFusion Builder начиная с v8 или v9, как было протестировано в Linux.

2) Наиболее реалистичный вариант (но болезненный) до сих пор: Передать запрос как объект в отчет ColdFusion Builder. Давайте подумаем об этом:

  1. Создайте отчет с помощью построителя отчетов, насколько мне нравится, используя RDS и т. Д. В моем локальном окне.
  2. Когда я закончу, скопируйте запрос во фрагмент кода или в столбец базы данных, чтобы динамически вводить его во время выполнения с правильным источником данных.
  3. Измените мое событие "run report", чтобы найти запрос из столбца базы данных, вставить его в другой динамический cfquery и, возможно, ... оценить (!?!) Его? Самое интересное, что я могу установить для источника данных cfquery то, что мне нужно для каждой среды.
  4. Когда я изменяю столбцы отчета в CF Report Builder, мне всегда приходится обновлять запрос в базе данных. Есть ли фрагмент кода, который может извлечь это для меня? Хм.

3) Меньше, чем идеал. Смиритесь с этим, и все промежуточные отчеты запускаются с живого сервера. Возможно скопируйте живые данные в стадию (без структурных изменений), чтобы они казались похожими.

Существуют ли красноречивые способы для достижения вышеизложенного?

Заранее спасибо!

1 Ответ

0 голосов
/ 21 апреля 2010

Если у вас разные блоки разработки / подготовки / производства, почему бы просто не использовать одно и то же имя источника данных на каждом? Это избавит вас от необходимости выяснить, где он находится.

Поскольку проблемы безопасности в моем текущем назначении мешают мне использовать RDS, я использую вариант 2 как само собой разумеющееся. Мне также нравится это, поскольку это облегчает отладку.

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