PHP: рдЯреАрдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓рдирд╛



PHP рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рд╡рд╛рд╕рди рдЙрдкрдХрд░рдг рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ - DoPHrine , CakePHP рд╕реЗ Phinx , Laravel рд╕реЗ , Yii рд╕реЗ - рдпрд╣ рдкрд╣рд▓реА рдмрд╛рдд рд╣реИ рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдИ рдереАред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рджрд░реНрдЬрди рдФрд░ рд╣реИрдВред рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рд╣реИ, рд╣рдм рдкрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрдж рд╣реИрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рднрд┐рдиреНрди рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдирд┐рд░рдВрддрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдЯреАрдо рд╡рд░реНрдХ рдХрд╛ рдЕрдиреБрднрд╡ ред

рдХрдЪреНрдЪреЗ SQL рдмрдирд╛рдо PHP рдПрдкреАрдЖрдИ


рд╣рдо рд╢реБрджреНрдз SQL рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдХрдИ рдЙрдкрдХрд░рдг SQL рдХреЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП PHP рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рд╣реИ? рдРрд╕рд╛ рдЙрдкрдХрд░рдг рд╣рдореЗрд╢рд╛ рдЕрдкрдиреА рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд╕реАрдорд┐рдд рд░рд╣реЗрдЧрд╛ред рд╡реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ; рдЖрдкрдХреЛ рдЕрднреА рднреА рд╢реБрджреНрдз рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рд▓реЗрдЦрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдХрд┐рд╕реА рдиреЗ рд╢рд┐рдХрд╛рдпрдд рдХреА рдХрд┐ рд╡рд╣ ALTER рдХрдорд╛рдВрдбреЛрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕реАрдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ ... рдЦреИрд░, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛, рдореИрдВрдиреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЦреЛрд▓реА рдФрд░ рдкрд╣рд╛рдбрд╝ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦреЗ, рдЦрд╛рд╕рдХрд░ рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВред

рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди (INSERT, UPDATE) рднреА рд╣рдореЗрд╢рд╛ SQL рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХрднреА рднреА ORM рдФрд░ рдореЙрдбрд▓ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдПрдХ рд╕рдВрд╢реЛрдзрди рдореЗрдВ рд╡реЗ рд╣реИрдВ, рджреВрд╕рд░реЗ рдореЗрдВ рдЕрдм рдирд╣реАрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

Rollback Country::delete()->where(....)->execute(); 

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ PHP рд╡рд░реНрдЧ рдЕрдм рд░реЗрдкреЛ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдмрджреНрдз рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╣ рдерд╛ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░реЗрдВред Brrr ...

рдЗрд╕рд▓рд┐рдП, SQL рд╕рд░рд▓ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ:

 --TRANSACTION --UP ALTER TABLE authors ADD COLUMN code INT; ALTER TABLE posts ADD COLUMN slug TEXT; UPDATE authors SET ... --DOWN ALTER TABLE authors DROP COLUMN code; ALTER TABLE posts DROP COLUMN slug; 

рдбреАрдбреАрдПрд▓ рдореЗрдВ рд▓реЗрди-рджреЗрди


PostgreSQL рдХреЗ рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде, рдореИрдВ рдПрдХ рдмреБрд░реЗ рд╕рдкрдиреЗ рдХреА рддрд░рд╣ рдЯреВрдЯреЗ рд╣реБрдП рдкрд▓рд╛рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛ - рдкреНрд░рд╡рд╛рд╕ рдмреАрдЪ рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛, рдХреБрдЫ рд▓реБрдврд╝рдХрд╛, рдХреБрдЫ рдирд╣реАрдВ, рдмреИрдареЛ рдФрд░ рдХрд▓рдо рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ ... рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдкрд░рдорд╛рдгреБ рдПрдХрд▓-рдкрдВрдХреНрддрд┐ рдХрдорд╛рдВрдб рд▓рд┐рдЦрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝рд╛ред рд▓реЗрдирджреЗрди рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ: рдЕрдЧрд░ рдХреБрдЫ рдЯреВрдЯрддрд╛ рд╣реИ - рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рддрд╛ рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ)))ред рдмрд╕ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдПрдХ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЕрдЧрд░ рдХреБрдЫ рдЧрд┐рд░ рдЧрдпрд╛, рддреЛ рдпрд╣ рдЬрд▓реНрджреА рд╕реЗ рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдЧрддрд╛ рд╣реИред

рджреГрд╢реНрдп (рджреГрд╢реНрдп) рдФрд░ рдХрд╛рд░реНрдп


рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВред DROP рдФрд░ CREATE рдЪрд╛рд╣рд┐рдПред рдпрд╛рдиреА рдЕрдВрддрд░ рдкрд░ (рдкреНрд░рд╡рд╛рд╕ рдХрд╛ рдкрд╛рда) рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ред рдЦрд╛рд╕рдХрд░ рдЬрдм рддрд░реНрдХ рдХреЛ рдШреБрдорд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 --UP DROP VIEW ... CREATE VIEW mvstock AS SELECT (now() - '7 days'::interval) AS refreshed_at, o.pid, COALESCE(sum(o.debit), 0)::integer AS debit, COALESCE(sum(o.credit) FILTER (WHERE d.type <> 104), 0)::integer AS credit, COALESCE(sum(o.debit), 0) - COALESCE(sum(o.credit), 0)::integer AS total FROM operations o JOIN docs d ON d.id = o.doc_id AND d.deleted_at IS NULL WHERE d.closed_at < (now() - '7 days'::interval) AND d.type <> 500 GROUP BY o.pid WITH DATA; --DOWN DROP VIEW ... CREATE VIEW mvstock AS SELECT (now() - '10 days'::interval) AS refreshed_at, o.pid, COALESCE(sum(o.debit), 0)::integer AS debit, COALESCE(sum(o.credit) FILTER (WHERE d.type <> 104), 0)::integer AS credit, COALESCE(sum(o.debit), 0) - COALESCE(sum(o.credit), 0)::integer AS total FROM operations o JOIN docs d ON d.id = o.doc_id AND d.deleted_at IS NULL WHERE d.closed_at < (now() - '10 days'::interval) AND d.type <> 500 GROUP BY o.pid WITH DATA; 

рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ?

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

рдФрд░ рдЕрдм рдЕрдВрддрд░ рдЗрд╕ рддрд░рд╣ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:



рдПрд╡рд┐рдЯреЛ рдореЗрдВ рд╡рд╛рдкрд╕, рд╣рдордиреЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдпрд╛ ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдорд╛рдорд▓рд╛ рдПрдХ рдЕрдЪреНрдЫреА рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ - рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдХреИрд╕реЗ рджреЗрдЦреЗрдВред рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред



рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП Habr├й рдкрд░ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг рдорд┐рд▓рд╛ред

рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рдореЗрд░рд╛ рд╢рд╛рд╢реНрд╡рдд рджрд░реНрдж рджреЛ рдП- рдФрд░ рдмреА-рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд╕рдВрдкрд╛рджрди рд╣реЛрддрд╛ рд╣реИред



рдП-рд╢рд╛рдЦрд╛ рдореЗрдВ рдмреИрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд░реЛрд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рд╣рдореЗрдВ рдпрд╣ рднреА рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреМрди рд╕рд╛ рдФрд░ рдХрд┐рддрдиреЗ), рдлрд┐рд░ рдмреА-рдмреНрд░рд╛рдВрдЪ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ рдФрд░ рдирдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд░реЛрд▓ рдХрд░реЗрдВред рдареАрдХ рд╣реИ, рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рд╕рдВрдкрд╛рджрди рд╕рдВрдЧрдд рд╣реИрдВ рдФрд░ рдореИрдВ рдмрд╕ рджреВрд╕рд░реА рд╢рд╛рдЦрд╛ рдореЗрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдмреА рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд░реЛрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдФрд░ рдЕрдЧрд░ рдирд╣реАрдВ? рдФрд░ рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕реА рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╢рд╛рдЦрд╛рдПрдБ рд╣реИрдВ? рдФрд░ рдлрд┐рд░ рдЗрди рд╕рднреА рд╕рдореАрдХреНрд╖рд╛ рд░рд╛рдЬреНрдп рдХреЛ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░реЗрдВ? рдореИрдВ рд╣рдореЗрд╢рд╛ рдЗрд╕рд╕реЗ рдирдлрд░рдд рдХрд░рддрд╛ рдерд╛ ...

рдЕрдм, рдХрд┐рд╕реА рдФрд░ рдХреА рд╢рд╛рдЦрд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдкрд░, рдореИрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд▓рд╛рдпрди рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рд▓реЛрдЧреЛрдВ рдХреЛ рд░реЛрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:



рдЬрд╣рд╛рдВ:

рдбреА - рдП-рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЬреЛ рдП-рд╢рд╛рдЦрд╛ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рд╡реЗ рд╡рд░реНрддрдорд╛рди рд╢рд╛рдЦрд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЧрдИ рд╣реИ
рдП - рдмреА-рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЬреЛ рдирдИ рд╢рд╛рдЦрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП рдФрд░ рд░реЛрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдПрдХ рдЖрдзрд╛рд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдСрдЯреЛ-рдЕрд╕реЗрдВрдмрд▓реА рдХрд░рдиреЗ рдкрд░ рдпрд╣ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдЖрдзрд╛рд░ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрд░реНрде рдпрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╢рд╛рдЦрд╛ рдкрд░ рдЬрд╛рдПрдБ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВред

рдХреНрд░рдорд╛рдВрдХрди рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдХреНрд░рдо


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



рдореИрдВ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рдЬрдм рд╣рдореЗрдВ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдпреЗ рдмрд┐рдВрджреБ рд╣рдореЗрд╢рд╛ рд╕реБрд╕рдВрдЧрдд рд╣реЛрддреЗ рд╣реИрдВред рдЦреИрд░, рдпрд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЪрд░рдг рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣рд╛рдБ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЙрджрд╛рд╣рд░рдг рд╣реИред

рд╣рдо рдПрдХ рджреГрд╢реНрдп рдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЙрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд▓реЛрдкрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ col_A рдХреЙрд▓рдо рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рдЬреЛрдбрд╝рд╛, рдФрд░ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА col_B рдиреЗред рддрджрдиреБрд╕рд╛рд░, рдпрджрд┐ рдЙрд╕рдХрд╛ рдХреЛрдб рдЦрджрд╛рди рдХреЗ рдмрд╛рдж рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдХреЙрд▓рдо рдореЗрдВ рдореЗрд░рд╛ рдХреЙрд▓рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛:

 CREATE VIEW vusers AS SELECT login, name, -- .... 
рд╢рд╛рдЦрд╛-рдПрд╢рд╛рдЦрд╛-рдмреА
 DROP VIEW vusers; CREATE VIEW vusers AS SELECT login, name, col_A, -- .... 
 DROP VIEW vusers; CREATE VIEW vusers AS SELECT login, name, col_B, -- .... 
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╢рд╛рдЦрд╛ рдХреЛ рджреВрд╕рд░реЗ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкрд▓рд╛рдпрди рдореЗрдВ рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓рд╛ рд╕реБрдзрд╛рд░ рд╣реИред

рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдЬреЛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрд╕реЗ рдЕрдм рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдЗрд╕рдореЗрдВ рдХрд┐рддрдиреЗ рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ (рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред рдпрд╛рдиреА рдЖрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рднреЗрдЬрд╛, рд╕рднреА рдирд┐рдпрдо, рдФрд░ рдлрд┐рд░ рдЖрдкрдиреЗ рдЗрд╕реЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕рдВрдкрд╛рджрди рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рдо рдПрдХ рдирдИ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯрд░ рдЗрд╕реЗ 2 рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗ - рд░реЛрд▓ рдмреИрдХ 1 рдФрд░ рд░реЛрд▓ 2,
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:



рд░реЛрд▓рдмреИрдХ


рд╣рдореЗрд╢рд╛ рд░реЛрд▓рдмреИрдХ рд▓рд┐рдЦреЗрдВ, рднрд▓реЗ рд╣реА рд╡рд╣ рдЖрдзрд╛рд░ рдХреЛ рдЙрд╕рдХреА рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рди рд▓реМрдЯрд╛ рд╕рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреАрдЖрд░рдУрдкреА рдЯреЗрдмрд▓, рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд░реЛрд▓рдмреИрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рдо рдПрдХ рдЦрд╛рд▓реА рдХреНрд░рд┐рдПрдЯ рдЯреЗрдмрд▓ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рджреЗрд╡ рдкреНрд░рдгрд╛рд▓реА рд╣рдореЗрд╢рд╛ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреА рд╣реИред PROD рдХреЗ рд▓рд┐рдП, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдВрд╢реЛрдзрди рдкреНрд░рдмрдВрдзрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрд▓рдЧ рд╕реНрддрд░ рдкрд░ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╛ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрддрд░ рдкрд░ рдЖрдзрд╛рд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрд▓рдмреИрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИред

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

рдЕрдХреНрд╕рд░, рдбреЗрд╡рд▓рдкрд░реНрд╕ рд░реЛрд▓рдмреИрдХ рдореЗрдВ рдЧрд▓рддрд┐рдпрд╛рдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдирдП рд╕рдВрдкрд╛рджрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдп рд▓реЛрдЧ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реЛрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╣рдореЗрд╢рд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдпреВрдкреА - рд░реЛрд▓рдмреИрдХ - рдпреВрдкреА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ

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

 ALTER TABLE abc ALTER COLUMN code SET NULL 

рд╡рд╛рд╣! рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛рдмреЗрд╕ NULL рдорд╛рдиреЛрдВ рд╕реЗ рднрд░рд╛ рд╣реИред рд░реЛрд▓рдмреИрдХ рдХрд░реЗрдВ:

 ALTER TABLE abc ALTER COLUMN code SET NOT NULL 

рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд :-(

рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 DELETE FROM abc WHERE code IS NULL 

рдХрдард┐рдирд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВ рдпрджрд┐ рд╣рдо рд╣рд░ рдмрд╛рд░ рдЦрд░реЛрдВрдЪ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдбреЗрдЯрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛

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

 ALTER TABLE user_logs RENAME TO user_logs_20190223; --  CREATE TABLE user_logs_20190223 AS TABLE user_logs; 

migrator


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

  • рд╕рдорд╛рдзрд╛рди рдореЗрдВ 2 рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ - рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрд╕реЛрд▓ (рд▓рд╛рд░рд╡реЗрд▓, рд╕рд┐рдореНрдлрдиреА) рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд╛рдж рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рдЖрдк рдХрд┐рд╕реА рднреА рдХрдВрд╕реЛрд▓ рдореЗрдВ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╡реЗрдм-рдереВрдерди рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • рдХреЛрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ - рдХреНрдпреЛрдВ, рдЬрдм рдпрд╣ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдВрдж рдХрд░реЗрдВред
  • SQL рд░реЛрд▓рдмреИрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
  • Postgesql, Mysql (рдХреЛрдИ рд▓реЗрдирджреЗрди рдирд╣реАрдВ) рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдХрд┐рд╕реА рднреА рдЖрдзрд╛рд░ рдФрд░ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдЪреНрдЪреЗ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рд╕рдВрджрд░реНрдн
- рдорд╛рдЗрдЧреНрд░реЗрд╢рди-рд▓рд┐рдм
- рд▓рд╛рд░рд╡реЗрд▓ / рдХрд╛рд░реАрдЧрд░ рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
- рд╕рд┐рдореНрдлрдиреА / рдХрдВрд╕реЛрд▓ рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

Source: https://habr.com/ru/post/hi435438/


All Articles