Автоматизация создания базы данных в SQL Server, размещенной в Amazon RDS

Я занимаюсь некоторыми исследованиями с SQL Server, размещенным в Amazon RDS. Я планирую иметь приложение, для которого требуется решение для нескольких арендаторов - одна база данных для каждого клиента с базой данных для входа и т. Д.

Так что я играю с RDS/SQL Server, но возникают проблемы, которые мне нужно преодолеть. Во-первых, как автоматизировать создание базы данных? Я RDS Я не могу просто восстановить из файла bak, и я хочу создать схему базы данных из шаблона. У кого-нибудь есть опыт с этим, и если да, то можете ли вы посоветовать мне несколько советов?

Благодаря,

kseudo

2
nl ja de
Вы посмотрели на использование SMO? ( mssqltips.com/sqlservertip/ 1826/& hellip; ) или, альтернативно, просто используя Management Studio и задачу «Создать скрипты ...»?
добавлено автор chrisb, источник

1 ответы

Сгенерировать скрипты - хорошая отправная точка для этого, но если вы действительно хотите автоматизировать создание базы данных, вы захотите преобразовать скрипт, который выводится из сценария генерации SQL Server в шаблон.

Хорошим способом сделать это было бы создание приложения .NET или даже просто хранимой процедуры, которая будет выполнять поиск и замену скрипта после того, как вы внесете его в шаблон.

  1. Create your template customer database with all the objects you want in it and then script out the database (all database objects).
  2. In C# or in SQL build a dynamic query by including a variable in every object name:

     CREATE DATABASE CustomerDB_1 ...
    
     "CREATE DATABASE CustomerDB_{0}" //Formatted String in C#
     'CREATE DATABASE CustomerDB_' + @vchCustomerID //Dynamic SQL
    

    If every object name has the customer ID in it and every database has a unique customer ID, then you can simply run the query after replacing the variables with the appropriate values and you're all set.

1
добавлено
Благодаря Крису, ваш первоначальный пост дал мне несколько идей о том, как реализовать решение моей проблемы. Я буду публиковать снова, если бы я сделал некоторый прогресс ... еще раз спасибо
добавлено автор kSeudo, источник
Привет @kSeudo Я ищу аналогичную настройку. Мы требуем отдельных баз данных для всех наших клиентов, но процесс создания занимает слишком много времени, и мы хотели бы автоматизировать его. Вам удалось решить вашу проблему с предложением Криса? Заранее спасибо.
добавлено автор megamaiku, источник
О, и что-то, что следует учитывать при использовании Amazon RDS, если вы не идете с неограниченным планом БД, у вас всегда может быть 1 основная база данных и иметь разные таблицы для каждого клиента - каждый клиент может иметь свою собственную схему, и вам не придется беспокоиться о максимальном числе ограничений БД. Не уверен, что это применимо для вас, а просто мысль.
добавлено автор Chris Mann, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)