рдбреЗрдЯрд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдкреНрд░рдгрд╛рд▓реАрдЪреА рддреБрд▓рдирд╛ рдЖрдгрд┐ рдирд┐рд╡рдб

рдбреЗрдЯрд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдкреНрд░рдгрд╛рд▓реАрдЪреА рддреБрд▓рдирд╛ рдЖрдгрд┐ рдирд┐рд╡рдб

рдбреЗрдЯрд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдкреНрд░рдгрд╛рд▓реАрдЪреА рддреБрд▓рдирд╛ рдЖрдгрд┐ рдирд┐рд╡рдб

рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рдмрджрд▓реВ рд╢рдХрддреЛ рдЖрдгрд┐ рдХрд╛рд╣реА рдХреНрд╖рдгреА рддреЗ рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдирд╛рд╣реА. рдЕрд░реНрдерд╛рдд, рдбреЗрдЯрд╛рдмреЗрд╕ рд╣рдЯрд╡рд┐рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЖрдгрд┐ рдирдВрддрд░ ORM рдореЙрдбреЗрд▓рд╢реА рдЬреБрд│рдгрд╛рд░реА рдирд╡реАрди рдЖрд╡реГрддреНрддреА рддрдпрд╛рд░ рдХрд░реЗрд▓, рдкрд░рдВрддреБ рдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдореБрд│реЗ рд╡рд┐рджреНрдпрдорд╛рди рдбреЗрдЯрд╛ рдирд╖реНрдЯ рд╣реЛрдИрд▓. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рд╕реНрдерд▓рд╛рдВрддрд░рдг рдкреНрд░рдгрд╛рд▓реАрдЪреЗ рдХрд╛рд░реНрдп рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреЗ рдЖрд╣реЗ рдХреА, рд╕реНрдХреАрдорд╛ рдмрджрд▓рд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдореА, рддреЗ рд╡рд┐рджреНрдпрдорд╛рди рдбреЗрдЯрд╛ рди рдЧрдорд╛рд╡рддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рддреАрд▓ рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рд╕рд╣ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХреЗрд▓реЗ рдЖрд╣реЗ.

рдпрд╛ рд▓реЗрдЦрд╛рдд, рдЖрдореНрд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд▓рд╛рдВрддрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╡рд┐рдз рд╕рд╛рдзрдиреЗ рдкрд╛рд╣реВ рдЗрдЪреНрдЫрд┐рддреЛ. рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рд╣реЗ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рд╕рдорд╛рди рдирд┐рд╡рдбреАрдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдВрд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.

рдЙрджреНрджрд┐рд╖реНрдЯ

рдЖрдордЪреА рдХрдВрдкрдиреА рд╕рдзреНрдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рдЪреА рдкреБрдвреАрд▓ рдкрд┐рдвреА рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдд рдЖрд╣реЗ тАУ Docs Security Suite (DSS). рд╕рд░реНрд╡реНрд╣рд░рдЪрд╛ рднрд╛рдЧ .Net Core рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ Entity Framework Core рд╣рд╛ DBMS рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдбрд┐рдЭрд╛рдЗрди рдХрд░рддрд╛рдирд╛, рдЖрдореНрд╣реА рдХреЛрдб рдлрд░реНрд╕реНрдЯ рджреГрд╖реНрдЯрд┐рдХреЛрди рд╡рд╛рдкрд░рддреЛ.

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдбреЛрдореЗрди рдореЙрдбреЗрд▓ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рд╡рд┐рдХрд╕рдХрд╛рдВрджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддреЗ - рдкреНрд░рддреНрдпреЗрдХ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рддрд╛рд░реНрдХрд┐рдХ рднрд╛рдЧрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ.

DSS рдЪреНрдпрд╛ рдорд╛рдЧреАрд▓ рдкрд┐рдвреАрдиреЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рдиреНрд╕ (EF 6) рд╣реЗ рд╕реНрдерд▓рд╛рдВрддрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рдгрд╛рд▓реА рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓реЗ. рддрдерд╛рдкрд┐, рддреНрдпрд╛рд╡рд┐рд░реБрджреНрдз рдХрд╛рд╣реА рддрдХреНрд░рд╛рд░реА рдЬрдорд╛ рдЭрд╛рд▓реНрдпрд╛ рдЖрд╣реЗрдд, рдореБрдЦреНрдп рдореНрд╣рдгрдЬреЗ EF рдХрдбреЗ рдЖрд╡реГрддреНрддреАрддреАрд▓ рд╡рд┐рд╡рд╛рджрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╡рд┐рд╡реЗрдХрдкреВрд░реНрдг рджреГрд╖реНрдЯреАрдХреЛрди рдирд╛рд╣реА. рд╕рдорд░реНрдердирд╛рдЪрд╛ рдПрдХ рднрд╛рдЧ рдореНрд╣рдгреВрди рдмрдЧрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддрд╛рдирд╛ рд╣реА рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдЬреВрдирд╣реА рдЕрд╕реНрд╡рд╕реНрде рдХрд░рддреЗ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдкрд░реНрдпрд╛рдпреА рдкрд░реНрдпрд╛рдпрд╛рдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛.

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

  1. рд╡рд┐рд╡рд┐рдз DBMS рд╕рд╛рдареА рд╕рдорд░реНрдерди. рдПрдордПрд╕ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡реНрд╣рд░, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓, рдУрд░реЕрдХрд▓ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЗрддрд░рд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ
  2. ORM рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдд рдЖрд╣реЗ. рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, рдИрдПрдл рдХреЛрд░ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рд╣реЛрддреА, рдкрд░рдВрддреБ рдбрд┐рдЭрд╛рдЗрди рд╕реНрдЯреЗрдЬрд╡рд░ рдЖрдореНрд╣реА рдЗрддрд░ рдУрдЖрд░рдПрдордЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рддрдпрд╛рд░ рд╣реЛрддреЛ.
  3. рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдЪреА рд╕реНрд╡рдпрдВ-рдирд┐рд░реНрдорд┐рддреА. рдХреЛрдб рдлрд░реНрд╕реНрдЯрдЪрд╛ рд╡рд┐рдХрд╛рд╕ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди, рдореА "рд╣рд╛рддрд╛рдиреЗ рд▓рд┐рд╣реВрди" рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдЯрд╛рд│реВ рдЗрдЪреНрдЫрд┐рддреЛ
  4. рдЖрд╡реГрддреНрддреА рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕. рд╡рд┐рддрд░реАрдд рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд, рд╡рд┐рд▓реАрдиреАрдХрд░рдг рдХрд░рддрд╛рдирд╛, EF рдХреЛрдЕрд░рд▓рд╛ рд╕рдВрдШрд░реНрд╖рд╛рдЪрд╛ рддреНрд░рд╛рд╕ рд╣реЛрдК рд╢рдХрддреЛ. рд╣реА рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪреА рд╕рдорд╕реНрдпрд╛ рдмрдирддреЗ рдХрд╛рд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реЗ рднрд╛рдЧ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдВрджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рддреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рд╡рд░ рдмрд░рд╛рдЪ рд╡реЗрд│ рдШрд╛рд▓рд╡рд╛рд╡рд╛ рд▓рд╛рдЧрддреЛ.
  5. рдкреНрд░рдЧрдд рджрд╕реНрддрдРрд╡рдЬ рдЖрдгрд┐ рд╕рдорд░реНрдерди. рдпреЗрдереЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА
  6. рдлреБрдХрдЯ. рдирд┐рдХрд╖ рд╕рд╢рд░реНрдд рдЖрд╣реЗ, рдХрд╛рд░рдг рдкреНрд░рдгрд╛рд▓реА рдлрд╛рд░ рдорд╣рд╛рдЧ рдХрд┐рдВрд╡рд╛ рдорд╣рд╛рдЧ рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рд╕реЛрдпреАрд╕рд╛рдареА рдЖрджрд░реНрд╢ рдЖрд╣реЗрдд, рдЖрдореНрд╣реА рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рджреЗрдЦреАрд▓ рддрдпрд╛рд░ рд╣реЛрддреЛ

рдереЛрдбреНрдпрд╛ рд╕рдВрд╢реЛрдзрдирд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдореА, рдЦрд╛рд▓реАрд▓ рдкрд░реНрдпрд╛рдп рд╕рд╛рдкрдбрд▓реЗ рдЖрдгрд┐ рддреЗ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗрдд:

  1. EF рдХреЛрд░ рд╕реНрдерд▓рд╛рдВрддрд░
  2. DBup
  3. RoundhouseE
  4. ThinkingHome.Migrator
  5. рдЕрд╕реНрдЦрд▓рд┐рдд рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рдгрд╛рд░рд╛

рдЖрдгрд┐ рдЖрддрд╛ рдереЛрдбреЗ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓

рдбреЗрдЯрд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдкреНрд░рдгрд╛рд▓реАрдЪреА рддреБрд▓рдирд╛ рдЖрдгрд┐ рдирд┐рд╡рдб
EntityFramework рдХреЛрд░ рд╕реНрдерд▓рд╛рдВрддрд░

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХрдЪ, рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рд╣рд╛ рдкрд╣рд┐рд▓рд╛ рдЖрдгрд┐ рдореБрдЦреНрдп рдкрд░реНрдпрд╛рдп рд╣реЛрддрд╛. рдПрдХ рджреЗрд╢реА рд╡рд╛рджреНрдп рдЬреЗ рдбрдл рд╡рд╛рдЬрд╡рд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдХрд╛рдо рдХрд░рддреЗ. рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдХрд╛рдЧрджрдкрддреНрд░реЗ, рдЕрдзрд┐рдХреГрдд рдЖрдгрд┐ рддрд╕реЗ рдирд╛рд╣реА, рд╕рд╛рдзреЗрдкрдгрд╛ рдЗ. рддрдерд╛рдкрд┐, рдХреНрд▓рд╛рд╕рд┐рдХ EF рдмрджреНрджрд▓ рдХреЗрд▓реЗрд▓реНрдпрд╛ рддрдХреНрд░рд╛рд░реА EF Core рд╕рд╛рдареА рджреЗрдЦреАрд▓ рд╕рдорд░реНрдкрдХ рдЖрд╣реЗрдд.

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдИрдПрдл рдХреЛрд░рдЪреЗ рдлрд╛рдпрджреЗ рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗрдд:

  • рдорд╛рдпрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╕рдорд░реНрдерди, рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг, рд░рд╢рд┐рдпрди, рдкреНрд░рдЪрдВрдб рд╕рдореБрджрд╛рдп рд╕рдорд╛рд╡реЗрд╢
  • CodeFirst рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдВрдЪреА рд╕реНрд╡рдпрдВ-рдирд┐рд░реНрдорд┐рддреА
  • EF 6 рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд, EF Core рдпрд╛рдкреБрдвреЗ рдбреЗрдЯрд╛рдмреЗрд╕рдЪрд╛ рд╕реНрдиреЕрдкрд╢реЙрдЯ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдд рдирд╛рд╣реА. рдХреЛрдб рдлрд░реНрд╕реНрдЯ рдордзреНрдпреЗ EF Core рд╕рд╣ рдХрд╛рдо рдХрд░рддрд╛рдирд╛, рдпрд╛рдкреБрдвреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддреИрдирд╛рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА
  • рдЖрдореНрд╣реА рдХреЛрдб рдлрд░реНрд╕реНрдЯ рд╡рд░реВрди рдирд╛рдЪрдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдНрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рддреНрдпрд╛рдВрдХрдбреЗ рдПрдХ рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ
  • рдкреНрд░рджрд╛рддреНрдпрд╛рдВрдмрд╛рдмрдд, PostgreSQL рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ, рдУрд░реЕрдХрд▓ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ, рдЗ. рдЗ. рдЖрдгрд┐ рдЕрдЧрджреА MS SQL рд╕рд░реНрд╡реНрд╣рд░ яБК

рдЖрдгрд┐ рддреЛрдЯреЗ рджреЗрдЦреАрд▓:

  • рд╕рдВрдШрд░реНрд╖рд╛рдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рд╕рдорд╛рди рдкрд╛рддрд│реАрд╡рд░ рд░рд╛рд╣рд┐рд▓реЗ. рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдЪрд╛ рдХреНрд░рдо рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдиреЕрдкрд╢реЙрдЯ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
  • рдЬреНрдпрд╛ рдореЙрдбреЗрд▓реНрд╕рд╡рд░ рдорд╛рдпрдЧреНрд░реЗрд╢рди рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ рддреНрдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡

DbUp

рдбреЗрдЯрд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдкреНрд░рдгрд╛рд▓реАрдЪреА рддреБрд▓рдирд╛ рдЖрдгрд┐ рдирд┐рд╡рдб
dbup.github.io

DbUp рд╣реА .NET рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╣реЗ рдЬреА NuGet рджреНрд╡рд╛рд░реЗ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ SQL рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓ рдХрд░рдгреНрдпрд╛рд╕ рдорджрдд рдХрд░рддреЗ. рдХреЛрдгрддреНрдпрд╛ рдмрджрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЖрдзреАрдЪ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд рдпрд╛рдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рддреЗ рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд╛рд▓рд╡рддреЗ. рд▓рд╛рдпрдмреНрд░рд░реА ASP.NET рд╡рд░реАрд▓ рдУрдкрди рд╕реЛрд░реНрд╕ рдмреНрд▓реЙрдЧрд┐рдВрдЧ рдЗрдВрдЬрд┐рдирдЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рддреВрди рд╡рд┐рдХрд╕рд┐рдд рдЭрд╛рд▓реА рдЖрд╣реЗ рдЖрдгрд┐ MIT рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗ рдЖрдгрд┐ рдХреЛрдб GitHub рд╡рд░ рдЖрд╣реЗ. рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдЪреЗ рд╡рд░реНрдгрди T-SQL рд╡рд╛рдкрд░реВрди рдХреЗрд▓реЗ рдЖрд╣реЗ.

рдлрд╛рдпрджреЗ рдХрд╛рдп рдЖрд╣реЗрдд:

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

рдЖрдгрд┐ рддреЛрдЯреЗ:

  • рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╕рдорд░реНрдерд┐рдд DBMS рд╕рд╣, Oracle рддреНрдпрд╛рдкреИрдХреА рдПрдХ рдирд╛рд╣реА
  • ORM рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдд рдирд╛рд╣реА
  • рд╣рд╛рддрд╛рдиреЗ T-SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╣рд┐рдгреЗ рд╣реЗ рдЖрдордЪреЗ рдзреНрдпреЗрдп рдирд╡реНрд╣рддреЗ
  • рджрд╕реНрддрдРрд╡рдЬ рдЖрдгрд┐ рд╕рдореБрджрд╛рдп рдЗрддрдХреЗрдЪ рдЖрд╣реЗрдд, рдЬрд░реА SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдиреЗ рддреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╕рддреАрд▓.

RoundhouseE

рдбреЗрдЯрд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдкреНрд░рдгрд╛рд▓реАрдЪреА рддреБрд▓рдирд╛ рдЖрдгрд┐ рдирд┐рд╡рдб
github.com/chucknorris/roundhouse

рд╣реЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдореЕрдиреЗрдЬрдореЗрдВрдЯ рдЯреВрд▓, Apache 2.0 рд▓рд╛рдпрд╕рдиреНрд╕ рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗрд▓реЗ, рдорд╛рдЧреАрд▓ рдкреНрд░рдорд╛рдгреЗ, T-SQL рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЗрдВрдЬрд┐рдирд╡рд░ рдЪрд╛рд▓рддреЗ. рд╡рд░рд╡рд░ рдкрд╛рд╣рддрд╛, рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдиреА рдЖрд░рд╛рдорджрд╛рдпреА рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА DBMS рд╕рдорд░реНрдердирд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рдВрддреНрд░рд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рд┐рдгреНрдпрд╛рд╕ рдкреНрд░рд╛рдзрд╛рдиреНрдп рджрд┐рд▓реЗ.

рд╕рд╛рдзрдХ:

  • рдЖрд╡рд╢реНрдпрдХ DBMS рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ (Oracle рд╕рд╣)

рдмрд╛рдзрдХ

  • рдУрд░реЕрдХрд▓ (рддрд╕реЗрдЪ рдНрдХреНрд╕реЗрд╕, рдЬреЛ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЖрд╣реЗ) .NET Core рд╡рд░ рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА, рдлрдХреНрдд .NET рдлреБрд▓ рдлреНрд░реЗрдорд╡рд░реНрдХрд╡рд░
  • ORM рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА
  • рдорд╛рдЧреАрд▓ рд╕рд╛рдзрдирд╛рдкреЗрдХреНрд╖рд╛ рдХрдореА рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдЖрд╣реЗ
  • рдкреБрдиреНрд╣рд╛ - рд╕реНрдерд▓рд╛рдВрддрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрджреНрд╡рд╛рд░реЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗ

ThinkingHome.Migrator

рдбреЗрдЯрд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдкреНрд░рдгрд╛рд▓реАрдЪреА рддреБрд▓рдирд╛ рдЖрдгрд┐ рдирд┐рд╡рдб

MIT рд▓рд╛рдпрд╕рдиреНрд╕ рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░реАрдд .NET Core рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдЖрд╡реГрддреНрддреАрдХреГрдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рд╕реНрдерд▓рд╛рдВрддрд░рд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдзрди. рд╡рд┐рдХрд╕рдХрд╛рдиреЗ рд╕реНрд╡рддрдГ рддреНрдпрд╛рдЪреНрдпрд╛ рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреАрдмрджреНрджрд▓ рдЬрд╡рд│рдЬрд╡рд│ рдПрдХ рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реА рд▓рд┐рд╣рд┐рд▓реЗ рд╣реЛрддреЗ.

рд╕рд╛рдзрдХ:

  • .NET Core рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ
  • рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдЪрд╛ рд╢рд╛рдЦрд╛рддреНрдордХ рдХреНрд░рдо рд▓рд╛рдЧреВ рдХреЗрд▓рд╛
  • рд╕реНрдерд▓рд╛рдВрддрд░ рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ

рдмрд╛рдзрдХ

  • рдПрдХ рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реА рд╢реЗрд╡рдЯрдЪреЗ рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗ. рд╡рд░рд╡рд░ рдкрд╛рд╣рддрд╛ рдкреНрд░рдХрд▓реНрдк рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА
  • Oracle рджреНрд╡рд╛рд░реЗ рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА (рд▓реЗрдЦрд╛рдд рдЕрд╕реЗ рдореНрд╣рдЯрд▓реЗ рдЖрд╣реЗ рдХреА рд╣реЗ .NET Core рд╕рд╛рдареА рд╕реНрдерд┐рд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рдЕрднрд╛рд╡рд╛рдореБрд│реЗ рдЖрд╣реЗ - рдкрд░рдВрддреБ рд╣реЗ рдПрдХ рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реАрдЪреЗ рдЖрд╣реЗ)
  • рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдирд┐рд░реНрдорд┐рддреА рдирд╛рд╣реА

рдПрдХрдВрджрд░реАрдд, рдкреНрд░рдХрд▓реНрдк рдЖрд╢рд╛рджрд╛рдпрдХ рджрд┐рд╕рдд рдЖрд╣реЗ, рд╡рд┐рд╢реЗрд╖рдд: рдЬрд░ рддреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ рдЖрдореНрд╣рд╛рд▓рд╛ рдпреЗрдереЗ рдЖрдгрд┐ рдЖрддреНрддрд╛рдЪ рдирд┐рд░реНрдгрдп рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдЕрд╕реНрдЦрд▓рд┐рдд рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рдгрд╛рд░рд╛

рдбреЗрдЯрд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдкреНрд░рдгрд╛рд▓реАрдЪреА рддреБрд▓рдирд╛ рдЖрдгрд┐ рдирд┐рд╡рдб
github.com/fluentmigrator/fluentmigrator

рдЪрд╛рд╣рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдореЛрдареНрдпрд╛ рд╕реИрдиреНрдпрд╛рд╕рд╣ рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реНрдерд▓рд╛рдВрддрд░ рд╕рд╛рдзрди. Apache 2.0 рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░реАрдд рдХреЗрд▓реЗ. рд╡рд░реНрдгрдирд╛рдд рдореНрд╣рдЯрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╣реЗ .NET рд╕рд╛рдареА рдПрдХ рд╕реНрдерд▓рд╛рдВрддрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрд╣реЗ, рд░реБрдмреА рдСрди рд░реЗрд▓ рдорд╛рдЗрдЧреНрд░реЗрд╢рдиреНрд╕ рдкреНрд░рдорд╛рдгреЗрдЪ. рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛рддреАрд▓ рдмрджрд▓ C# рд╡рд░реНрдЧрд╛рдВрдордзреНрдпреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗрдд.

рдпреЗрдереЗ рдлрд╛рдпрджреЗ рдЖрд╣реЗрдд:

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

рд╡рдЬрд╛рдВрдмрджреНрджрд▓, рддреЗ рдпреЗрдереЗ рдЖрд╣реЗрдд:

  • рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдирд┐рд░реНрдорд┐рддреА рдирд╛рд╣реА
  • EF рдореЙрдбреЗрд▓рд╢реА рдХреЛрдгрддреЗрд╣реА рдХрдиреЗрдХреНрд╢рди рдирд╛рд╣реА
  • рдХреЛрдгрддреЗрд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдиреЕрдкрд╢реЙрдЯ рдирд╛рд╣реАрдд

рдЖрдордЪреА рдирд┐рд╡рдб рдХрд╛рдп рд╣реЛрддреА?

рдбреЗрдЯрд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдкреНрд░рдгрд╛рд▓реАрдЪреА рддреБрд▓рдирд╛ рдЖрдгрд┐ рдирд┐рд╡рдб

рдЧрд░рдорд╛рдЧрд░рдо рд╡рд╛рджрд╡рд┐рд╡рд╛рдж рджреЛрди рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рднреЛрд╡рддреА рдлрд┐рд░рд▓реЗ - рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдирд┐рд░реНрдорд┐рддреА рдЖрдгрд┐ рд╕рдВрдШрд░реНрд╖рд╛рдВрдЪреЗ рд╡рд┐рд╡реЗрдХреА рдирд┐рд░рд╛рдХрд░рдг. рдЗрддрд░ рдШрдЯрдХ рдЦреВрдкрдЪ рдХрдореА рднрдпрд╛рд╡рд╣ рд╣реЛрддреЗ. рдкрд░рд┐рдгрд╛рдореА, рдЪрд░реНрдЪреЗрдЪреНрдпрд╛ рдирд┐рдХрд╛рд▓рд╛рдВрдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ, рдЯреАрдордиреЗ рдирд╡реАрди рдкреНрд░рдХрд▓реНрдкрд╛рдд Fluent Migrator рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рдХрд╛рд░рдг рднрд╡рд┐рд╖реНрдпрд╛рдд рд╕рдВрдШрд░реНрд╖ рд╕реЛрдбрд╡рд▓реНрдпрд╛рдиреЗ рдмрд░реЗрдЪ рдлрд╛рдпрджреЗ рд╣реЛрддреАрд▓.

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

рдЕрд░реНрдерд╛рдд, рдХреЛрдгрддреАрд╣реА рдкрд░рд┐рдкреВрд░реНрдг рд╕рд╛рдзрдиреЗ рдирд╛рд╣реАрдд. рдореНрд╣рдгреВрди рдЖрдореНрд╣рд╛рд▓рд╛ рдирд┐рд╡рдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдордЪреНрдпрд╛ "рдЗрдЪреНрдЫрд╛" рд▓рд╛ рдкреНрд░рд╛рдзрд╛рдиреНрдп рджреНрдпрд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ. рддрдерд╛рдкрд┐, рдЗрддрд░ рд╕рдВрдШ рдЖрдгрд┐ рдЗрддрд░ рдХрд╛рд░реНрдпрд╛рдВрд╕рд╛рдареА, рдЗрддрд░ рдШрдЯрдХ рдирд┐рд░реНрдгрд╛рдпрдХ рдЕрд╕реВ рд╢рдХрддрд╛рдд. рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рд╣рд╛ рд▓реЗрдЦ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдирд┐рд╡рдб рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░реЗрд▓.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛