рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рддреБрд▓рдирд╛ рд░ рдЪрдпрди

рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рддреБрд▓рдирд╛ рд░ рдЪрдпрди

рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рддреБрд▓рдирд╛ рд░ рдЪрдпрди

рдбрд╛рдЯрд╛ рдореЛрдбреЗрд▓ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕рдордпрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ, рд░ рдХреЗрд╣рд┐ рдмрд┐рдиреНрджреБрдорд╛ рдпреЛ рдЕрдм рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрдЧ рдореЗрд▓ рдЦрд╛рдБрджреИрдиред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдбрд╛рдЯрд╛рдмреЗрд╕ рдореЗрдЯрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ ORM рд▓реЗ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫ рдЬреБрди рдореЛрдбреЗрд▓рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ, рддрд░ рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рдЕрд╡рд╕реНрдерд┐рдд рдбрд╛рдЯрд╛ рдЧреБрдорд╛рдЙрдиреЗрдЫред рддрд╕рд░реНрде, рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдХрд╛рд░реНрдп рднрдиреЗрдХреЛ рдпреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБ рд╣реЛ рдХрд┐, рд╕реНрдХрд┐рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирдХреЛ рдкрд░рд┐рдгрд╛рдордХреЛ рд░реВрдкрдорд╛, рдпреЛ рдЕрд╡рд╕реНрдерд┐рдд рдбрд╛рдЯрд╛ рдирдЧреБрдорд╛рдИрдХрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдбрд╛рдЯрд╛ рдореЛрдбреЗрд▓рд╕рдБрдЧ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░рд┐рдПрдХреЛ рдЫред

рдпрд╕ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореА рдбрд╛рдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгрд╣рд░реВ рд╣реЗрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рд╣рд╛рдореА рдЖрд╢рд╛ рдЧрд░реНрджрдЫреМрдВ рдХрд┐ рдпреЛ рд╕рдореАрдХреНрд╖рд╛ рд╕рдорд╛рди рд╡рд┐рдХрд▓реНрдкрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рд╣реБрдиреЗрдЫред

рдЙрджреНрджреЗрд╢реНрдп

рд╣рд╛рдореНрд░реЛ рдХрдореНрдкрдиреАрд▓реЗ рд╣рд╛рд▓ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдЙрддреНрдкрд╛рджрдирдХреЛ рдЕрд░реНрдХреЛ рдкреБрд╕реНрддрд╛рдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ - рдХрд╛рдЧрдЬрд╛рдд рд╕реБрд░рдХреНрд╖рд╛ рд╕реВрдЯ (DSS)ред рд╕рд░реНрднрд░ рднрд╛рдЧ .Net Core рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ, рд░ Entity Framework Core рд▓рд╛рдИ DBMS рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдбрд┐рдЬрд╛рдЗрди рдЧрд░реНрджрд╛, рд╣рд╛рдореА рдХреЛрдб рдкрд╣рд┐рд▓реЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдбреЛрдореЗрди рдореЛрдбреЗрд▓ рдзреЗрд░реИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдПрдХреИ рд╕рдордпрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╣реЛ - рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЖрдлреНрдиреИ рддрд╛рд░реНрдХрд┐рдХ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫред

DSS рдХреЛ рдЕрдШрд┐рд▓реНрд▓реЛ рдкреБрд╕реНрддрд╛рд▓реЗ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд░реВрдкрдорд╛ рдХреНрд▓рд╛рд╕рд┐рдХ Entity Framework Migrations (EF 6) рдкреНрд░рдпреЛрдЧ рдЧрд░реНтАНрдпреЛред рдпрджреНрдпрдкрд┐, рдпрд╕рдХреЛ рд╡рд┐рд░реБрджреНрдзрдорд╛ рдХреЗрд╣реА рдЧреБрдирд╛рд╕реЛрд╣рд░реВ рдЬрдореНрдорд╛ рднрдПрдХрд╛ рдЫрдиреН, рдореБрдЦреНрдп рднрдиреЗрдХреЛ EF рд╕рдБрдЧ рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рд╡рд╛рджрд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╡рд┐рд╡реЗрдХрдкреВрд░реНрдг рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдЕрднрд╛рд╡ рдЫред рд╕рдорд░реНрдердирдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рдмрдЧрд╣рд░реВ рдлрд┐рдХреНрд╕ рдЧрд░реНрджрд╛ рдпреЛ рддрдереНрдпрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЕрдЭреИ рдЕрдкреНрдареНрдпрд╛рд░реЛ рдкрд╛рд░реНрдЫ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред

рдЫрд▓рдлрд▓рдХреЛ рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рдореНрди рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдЧрдарди рдЧрд░рд┐рдпреЛ:

  1. рд╡рд┐рднрд┐рдиреНрди DBMS рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред MS SQL рд╕рд░реНрднрд░, PostgreSQL, Oracle рдЖрд╡рд╢реНрдпрдХ рдЫ, рддрд░ рдЕрд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред
  2. ORM рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рд╕реБрд░реБрдорд╛, рдпреЛ EF рдХреЛрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдерд┐рдпреЛ, рддрд░ рдбрд┐рдЬрд╛рдЗрди рдЪрд░рдгрдорд╛ рд╣рд╛рдореА рдЕрдиреНрдп ORM рд╣рд░реВ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрди рддрдпрд╛рд░ рдерд┐рдпреМрдВред
  3. рдорд╛рдЗрдЧреНрд░реЗрд╕рдирдХреЛ рд╕реНрд╡рдд: рдЙрддреНрдкрд╛рджрдиред рдХреЛрдб рдлрд░реНрд╕реНрдЯрдХреЛ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИ, рдо "рд╣рд╛рддрд▓реЗ рд▓реЗрдЦреНрдиреЗ" рдорд╛рдЗрдЧреНрд░реЗрд╕рдирдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред
  4. рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рдиреНрджреНрд╡ред рд╡рд┐рддрд░рд┐рдд рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛, рдорд░реНрдЬ рдЧрд░реНрджрд╛, EF рдХреЛрд░ рджреНрд╡рдиреНрджреНрд╡рдмрд╛рдЯ рдЧреНрд░рд╕реНрдд рд╣реБрди рд╕рдХреНрдЫред рдпреЛ рдПрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛ рдмрдиреНрдЫ рдХрд┐рдирднрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧрд╣рд░реВ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╣реЛ, рддреНрдпрд╕реИрд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рддреНрдпреЗрдХрдорд╛ рдзреЗрд░реИ рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫред
  5. рдЙрдиреНрдирдд рдХрд╛рдЧрдЬрд╛рдд рд░ рд╕рдорд░реНрдердиред рдпрд╣рд╛рдБ, рдпреЛ рд╣рд╛рдореАрд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ, рдХреБрдиреИ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдЫреИрди
  6. рдирд┐:рд╢реБрд▓реНрдХред рдорд╛рдкрджрдгреНрдб рд╕рд╢рд░реНрдд рдЫ, рдХрд┐рдирдХрд┐ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдзреЗрд░реИ рдорд╣рдБрдЧреЛ рд╡рд╛ рдорд╣рдБрдЧреЛ рдЫреИрдирдиреН, рддрд░ рд╕реБрд╡рд┐рдзрд╛рдорд╛ рдЖрджрд░реНрд╢ рдЫрдиреН, рд╣рд╛рдореА рдкрдирд┐ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрди рддрдпрд╛рд░ рдерд┐рдпреМрдВред

рдереЛрд░реИ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХреЛ рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдирд┐рдореНрди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд░реНтАНрдпреЛ рд░ рд╡рд┐рдЪрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рдВрдЫрдиреАрдп рдлреЗрд▓рд╛ рдкрд╛рд░рд┐рдпреЛ:

  1. EF рдХреЛрд░ рдорд╛рдЗрдЧреНрд░реЗрд╕рди
  2. DBup
  3. рд░рд╛рдЙрдиреНрдбрд╣рд╛рдЙрд╕ рдИ
  4. ThinkingHome.Migrator
  5. рдкреНрд░рд╡рд╛рд╣рд┐рдд рдкреНрд░рд╡рд╛рд╕реА

рд░ рдЕрдм рдПрдХ рд╕рд╛рдиреЛ рдердк рд╡рд┐рд╡рд░рдг

рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рддреБрд▓рдирд╛ рд░ рдЪрдпрди
EntityFramework рдХреЛрд░ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдкрдорд╛, рдпреЛ рдЫрдиреМрдЯ рдЧрд░реНрди рдкрд╣рд┐рд▓реЛ рд░ рдореБрдЦреНрдп рд╡рд┐рдХрд▓реНрдк рдерд┐рдпреЛред рдПрдЙрдЯрд╛ рдиреЗрдЯрд┐рдн рдЗрдиреНрд╕реНрдЯреНрд░реБрдореЗрдиреНрдЯ рдЬрд╕рд▓реЗ рдмрд╛рдХрд╕рдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдХрд╛рдо рдЧрд░реНрдЫ, рдЦреИрдБрдЬрд░реАрдХреЛ рд╡рд░рд┐рдкрд░рд┐ рдХреБрдиреИ рд╣рд▓рдЪрд▓ рдирдЧрд░реАред рдХрд╛рдЧрдЬрд╛рддрдХреЛ рдареВрд▓реЛ рдорд╛рддреНрд░рд╛, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░ рддреНрдпрд╕реНрддреЛ рд╣реЛрдЗрди, рд╕рд╛рджрдЧреА, рдЖрджрд┐ред рдпрджреНрдпрдкрд┐, рдХреНрд▓рд╛рд╕рд┐рдХ EF рдХреЛ рдмрд╛рд░реЗрдорд╛ рдмрдирд╛рдЗрдПрдХреЛ рдЧреБрдирд╛рд╕реЛрд╣рд░реВ EF рдХреЛрд░рдХреЛ рд▓рд╛рдЧрд┐ рдкрдирд┐ рдзреЗрд░реИ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рдЫрдиреНред

рдпрд╕рд░реА, EF рдХреЛрд░рдХрд╛ рдлрд╛рдЗрджрд╛рд╣рд░реВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН:

  • рдорд╛рдЗрдХреНрд░реЛрд╕рдлреНрдЯ рд╕рдорд░реНрдерди, рдХрд╛рдЧрдЬрд╛рдд, рд░реВрд╕реА рд╕рд╣рд┐рдд, рд╡рд┐рд╢рд╛рд▓ рд╕рдореБрджрд╛рдп
  • CodeFirst рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдорд╛рдЗрдЧреНрд░реЗрд╕рдирдХреЛ рд╕реНрд╡рдд: рдЙрддреНрдкрд╛рджрди
  • EF 6 рдХреЛ рддреБрд▓рдирд╛рдорд╛, EF рдХреЛрд░рд▓реЗ рдЕрдм рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рднрдгреНрдбрд╛рд░ рдЧрд░реНрджреИрдиред рдХреЛрдб рдлрд░реНрд╕реНрдЯрдорд╛ EF рдХреЛрд░рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛, рдЕрдм рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди
  • рд╣рд╛рдореА рдХреЛрдб рдлрд░реНрд╕реНрдЯрдмрд╛рдЯ рдирд╛рдЪрд┐рд░рд╣реЗрдХрд╛ рд╣реБрдирд╛рд▓реЗ, рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рдбрд╛рдЯрд╛ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрдорд╛ рдПрдЙрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ
  • рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛, PostgreSQL рд╕рдорд░реНрдерд┐рдд рдЫ, Oracle рд╕рдорд░реНрдерд┐рдд рдЫ, рдЖрджрд┐, рдЖрджрд┐, рд░ MS SQL Server яБК

рд░ рдмреЗрдлрд╛рдЗрджрд╛рд╣рд░реВ рдкрдирд┐:

  • рджреНрд╡рдиреНрджреНрд╡ рд╕рдорд╛рдзрд╛рди рдПрдЙрдЯреИ рд╕реНрддрд░рдорд╛ рд░рд╣реНрдпреЛред рдпреЛ рдХреНрд░рдо рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ
  • рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд╣рд░реВ рдЙрддреНрдкрдиреНрди рднрдПрдХрд╛ рдореЛрдбреЗрд▓рд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░рддрд╛

DbUp

рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рддреБрд▓рдирд╛ рд░ рдЪрдпрди
dbup.github.io

DbUp рдПрдХ .NET рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛ рдЬреБрди NuGet рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ SQL рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкреБрд╢ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫред рдпрд╕рд▓реЗ рдХреБрди рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рд╕рдХрд┐рдПрдХреЛ рдЫ рднрдиреЗрд░ рдЯреНрд░реНрдпрд╛рдХ рд░рд╛рдЦреНрдЫ рд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рднрдПрдХрд╛рд╣рд░реВрд▓рд╛рдИ рдЪрд▓рд╛рдЙрдБрдЫред рдкреБрд╕реНрддрдХрд╛рд▓рдп ASP.NET рдорд╛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдмреНрд▓рдЧрд┐рдЩ рдЗрдиреНрдЬрд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдмрд╛рдЯ рдмрдвреЗрдХреЛ рд╣реЛ рд░ MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рдЕрд╡рд╕реНрдерд┐рдд рдЫ, рд░ рдХреЛрдб GitHub рдорд╛ рдЫред рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд╣рд░реВ T-SQL рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫред

рдХреЗ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдЫрдиреН:

  • рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ DBMS (MS SQL Server, PstgreSQL, MySQL) рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди
  • рд▓рд┐рдкрд┐рд╣рд░реВ T-SQL рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рд╣реБрдирд╛рд▓реЗ, рддрд┐рдиреАрд╣рд░реВ рдПрдХрджрдо рд╕рд░рд▓ рджреЗрдЦрд┐рдиреНрдЫрдиреН
  • рд╡рд┐рд╡рд╛рджрд╣рд░реВ SQL рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрдирд┐ рд╕рдорд╛рдзрд╛рди рдЧрд░рд┐рдиреНрдЫ

рд░ рд╡рд┐рдкрдХреНрд╖:

  • рд╕рдорд░реНрдерд┐рдд DBMS рдХреЛ рд╕рдмреИ рд╡рд┐рд╡рд┐рдзрддрд╛ рд╕рдВрдЧ, Oracle рддреА рдордзреНрдпреЗ рдПрдХ рд╣реЛрдЗрди
  • ORM рд╕рдБрдЧ рдЕрдиреНрддрд░реНрдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджреИрди
  • рд╣рд╛рддрд▓реЗ T-SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд▓реЗрдЦреНрдиреБ рднрдиреЗрдХреЛ рд╣рд╛рдореАрд▓реЗ рд▓рдХреНрд╖реНрдп рд░рд╛рдЦреЗрдХрд╛ рдерд┐рдПрдиреМрдВ
  • рдХрд╛рдЧрдЬрд╛рдд рд░ рд╕рдореБрджрд╛рдп рдпрддрд┐ рдзреЗрд░реИ рдЫрдиреН, рдпрджреНрдпрдкрд┐ SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЗрдЦреНрдиреЗ рд╕рдиреНрджрд░реНрднрдорд╛ рддрд┐рдиреАрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реБрди рд╕рдХреНрдЫред

рд░рд╛рдЙрдиреНрдбрд╣рд╛рдЙрд╕ рдИ

рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рддреБрд▓рдирд╛ рд░ рдЪрдпрди
github.com/chucknorris/roundhouse

рдпреЛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЙрдкрдХрд░рдг, Apache 2.0 рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд, рдЕрдШрд┐рд▓реНрд▓реЛ рдЬрд╕реНрддреИ, T-SQL рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдЗрдиреНрдЬрд┐рдирдорд╛ рдЪрд▓реНрдЫред рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╕рд╣рдЬ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ DBMS рд╕рдорд░реНрдерди рд╕рдореНрдмрдиреНрдзреА рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджрд┐рдПред

рдкреНрд░реЛ:

  • рдЖрд╡рд╢реНрдпрдХ DBMS рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ (рдУрд░реЗрдХрд▓ рд╕рд╣рд┐рдд)

Cons:

  • Oracle (рд╕рд╛рдереИ рдкрд╣реБрдБрдЪ, рдЬреБрди рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЫ) .NET Core рдорд╛ рд╕рдорд░реНрдерд┐рдд рдЫреИрди, рдХреЗрд╡рд▓ .NET Full Framework рдорд╛ред
  • ORM рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИрди
  • рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрдкрдХрд░рдг рднрдиреНрджрд╛ рдкрдирд┐ рдХрдо рдХрд╛рдЧрдЬрд╛рдд рдЫ
  • рдлреЗрд░рд┐ - рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд╣рд░реВ рд▓рд┐рдкрд┐рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд▓реЗрдЦрд┐рдПрдХрд╛ рдЫрдиреН

ThinkingHome.Migrator

рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рддреБрд▓рдирд╛ рд░ рдЪрдпрди

MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд .NET рдХреЛрд░ рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рд╕рдВрд╕реНрдХрд░рдг рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рдЙрдкрдХрд░рдгред рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдЖрдлреИрд▓реЗ рдпрд╕рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд▓рдЧрднрдЧ рдПрдХ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ рд▓реЗрдЦреЗ.

рдкреНрд░реЛ:

  • .NET рдХреЛрд░рдХреЛ рд▓рд╛рдЧрд┐ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ
  • рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд╣рд░реВрдХреЛ рд╢рд╛рдЦрд╛рдмрджреНрдз рдЕрдиреБрдХреНрд░рдо рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛ
  • рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд▓рдЧрд┐рдЩ рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛ

Cons:

  • рдкрдЫрд┐рд▓реНрд▓реЛ рдкрдЯрдХ рдПрдХ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдорд░реНрдерд┐рдд рдЫреИрди
  • Oracle рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЫреИрди (рд▓реЗрдЦрд▓реЗ рдмрддрд╛рдЙрдБрдЫ рдХрд┐ рдпреЛ .NET Core рдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдерд┐рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХрдореАрдХреЛ рдХрд╛рд░рдг рд╣реЛ - рддрд░ рдпреЛ рдПрдХ рд╡рд░реНрд╖ рдЕрдШрд┐рдХреЛ рд╣реЛ)
  • рдорд╛рдЗрдЧреНрд░реЗрд╕рдирдХреЛ рдХреБрдиреИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрддреНрдкрд╛рджрди рдЫреИрди

рд╕рдордЧреНрд░рдорд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЖрд╢рд╛рдЬрдирдХ рджреЗрдЦрд┐рдиреНрдЫ, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдпрджрд┐ рдпреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рд╣реЛ, рддрд░ рд╣рд╛рдореАрд▓реЗ рдпрд╣рд╛рдБ рд░ рдЕрд╣рд┐рд▓реЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рдкреНрд░рд╡рд╛рд╣рд┐рдд рдкреНрд░рд╡рд╛рд╕реА

рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рддреБрд▓рдирд╛ рд░ рдЪрдпрди
github.com/fluentmigrator/fluentmigrator

рдкреНрд░рд╢рдВрд╕рдХрд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕реЗрдирд╛рдХреЛ рд╕рд╛рде рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдЙрдкрдХрд░рдгред Apache 2.0 рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рддред рд╡рд░реНрдгрдирдорд╛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рдпреЛ .NET рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдврд╛рдБрдЪрд╛ рд╣реЛ, Ruby on Rails Migrations рдЬрд╕реНрддреИред рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ C# рдХрдХреНрд╖рд╛рд╣рд░реВрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫред

рдпрд╣рд╛рдБ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдЫрдиреН:

  • рдЖрд╡рд╢реНрдпрдХ DBMS рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди
  • .NET рдХреЛрд░ рд╕рдорд░реНрдерди
  • рдареВрд▓реЛ рд╡рд┐рдХрд╕рд┐рдд рд╕рдореБрджрд╛рдп
  • рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд╣рд░реВ рдмреАрдЪрдХреЛ рд╡рд┐рд╡рд╛рджрд╣рд░реВ рдХреНрд░рдорд┐рдХ рд░реВрдкрдорд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░рд┐рдиреНрдЫ- рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫред рдердк рд░реВрдкрдорд╛, рдпрджрд┐ рдПрдХ рд╕рдВрд╕реНрдерд╛рдХреЛ рд╡рд░рд┐рдкрд░рд┐ рджреНрд╡рдиреНрджреНрд╡ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ, рдХреЛрдб рдорд░реНрдЬ рдЧрд░реНрджрд╛, рдпреЛ рдХреЛрдбрдХреЛ рдмрд╛рдБрдХреА рднрд╛рдЧрдорд╛ рдЬрд╕реНрддреИ рд╕рдорд╛рдзрд╛рди рдЧрд░рд┐рдиреНрдЫред
  • рддреНрдпрд╣рд╛рдБ рдкреНрд░реЛрдлрд╛рдЗрд▓рд╣рд░реВ рдЫрдиреН рдЬреБрди рд╕рдлрд▓ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкрдЫрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫред рд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕реЗрд╡рд╛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдмреЛрдХреНрди рд╕рдХреНрдЫрдиреНред рдЕрдиреНрддрд┐рдо рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдПрдХ рдорд╣рд┐рдирд╛ рдЕрдШрд┐ рдерд┐рдпреЛ, рддреНрдпреЛ рд╣реЛ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬреАрд╡рд┐рдд рдЫ

рдорд╛рдЗрдирд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рддрд┐рдиреАрд╣рд░реВ рдпрд╣рд╛рдБ рдЫрдиреН:

  • рдорд╛рдЗрдЧреНрд░реЗрд╕рдирдХреЛ рдХреБрдиреИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрддреНрдкрд╛рджрди рдЫреИрди
  • EF рдореЛрдбреЗрд▓рд╣рд░реВрд╕рдБрдЧ рдХреБрдиреИ рдЬрдбрд╛рди рдЫреИрди
  • рдХреБрдиреИ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВ рдЫреИрдирдиреН

рд╣рд╛рдореНрд░реЛ рд░реЛрдЬрд╛рдЗ рдХреЗ рдерд┐рдпреЛ?

рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рддреБрд▓рдирд╛ рд░ рдЪрдпрди

рддрд╛рддреЛ рдмрд╣рд╕ рджреБрдИ рдорд╛рдкрджрдгреНрдбрд╣рд░реВ рд╡рд░рд┐рдкрд░рд┐ рдШреБрдореЗрдХреЛ рдерд┐рдпреЛ - рдорд╛рдЗрдЧреНрд░реЗрд╕рдирдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрддреНрдкрд╛рджрди рд░ рджреНрд╡рдиреНрджреНрд╡рдХреЛ рд╡рд┐рд╡реЗрдХрдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рдиред рдЕрдиреНрдп рдХрд╛рд░рдХрд╣рд░реВ рдзреЗрд░реИ рдХрдо рдбрд░рд▓рд╛рдЧреНрджреЛ рдерд┐рдПред рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдЫрд▓рдлрд▓рдХреЛ рдирддрд┐рдЬрд╛рдХреЛ рдЖрдзрд╛рд░рдорд╛, рдЯреЛрд▓реАрд▓реЗ рдирдпрд╛рдБ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдлреНрд▓реБрдПрдиреНрдЯ рдорд╛рдЗрдЧреНрд░реЗрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНтАНрдпреЛред рдХрд┐рдирднрдиреЗ рднрд╡рд┐рд╖реНрдпрдорд╛ рджреНрд╡рдиреНрджреНрд╡рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрд╛ рдзреЗрд░реИ рдлрд╛рдЗрджрд╛рд╣рд░реВ рд╣реБрдиреЗрдЫрдиреНред

рдирд┐рд╖реНрдХрд░реНрд╖

рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдЙрддреНрддрдо рдЙрдкрдХрд░рдгрд╣рд░реВ рдЫреИрдирдиреНред рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдЫрдиреМрдЯ рдЧрд░реНрди рд╣рд╛рдореНрд░реЛ "рдЪрд╛рд╣рдирд╛" рд▓рд╛рдИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджрд┐рдиреБрдкрд░реНрдЫред рдпрджреНрдпрдкрд┐, рдЕрдиреНрдп рдЯреЛрд▓реАрд╣рд░реВ рд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдЕрдиреНрдп рдХрд╛рд░рдХрд╣рд░реВ рдирд┐рд░реНрдгрд╛рдпрдХ рд╣реБрди рд╕рдХреНрдЫрдиреНред рд╣рд╛рдореА рдЖрд╢рд╛ рдЧрд░реНрдЫреМрдВ рдХрд┐ рдпрд╕ рд▓реЗрдЦрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЫрдиреМрдЯ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди