рдкрд░рд┐рдЪрдп
рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!
рдореИрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдФрд░ django рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, django рдпрд╣рд╛рдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдореЙрдбрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдбреЗрдЯрд╛ рдпреЛрдЬрдирд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╕рдВрдЪрд╛рд▓рди рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рд╣реИред Django рдХреЛ рдХрд┐рд╕реА рднреА рдкрд╕рдВрджреАрджрд╛ рдврд╛рдВрдЪреЗ / рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╛рди рд╣реЛрдЧрд╛ред
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЖрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдЕрдзрд┐рдХ рджреЗрдЦрднрд╛рд▓ рдФрд░ рдЬрд╛рдЧрд░реВрдХрддрд╛ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЖрдЧреЗ рдЬрд╛рдКрдВ, рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдзрд╛рд░рдгрд╛рдПрдВ рдмрдирд╛рдиреЗ рджреЗрдВред
рдЖрдк рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реНрдХ рдХреЛ 3 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдорд╛рдЗрдЧреНрд░реЗрд╢рди - рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ (рдЯреЗрдмрд▓) рдмрджрд▓рддреЗ рд╣реБрдП, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдзрд╛рдЧреЗ рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВред
- рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ - рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпрдХреНрд╖ рдХрд╛рд░реНрдп (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ), рд╕рдорд╛рди рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд▓рдЧрд╛рддрд╛рд░ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
- рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди - рдбреЗрдЯрд╛ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЬрдм рд╣рдо рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рднреА рд╣реЛрдЧрд╛ред
рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрдм рд╣рдорд╛рд░реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╕рдордп рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ / рдЧрд┐рд░рддрд╛ рд╣реИ / рднрд░реА рд╣реБрдИ рд╣реИ, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдпрд╣ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХрд╛ рд╣реИред
рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрд┐рд╕реА рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдХрд┐рд╕реА рднреА рдкреНрд░рдпрд╛рд╕ рд╕реЗ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд░реЛрд▓ рдЖрдЙрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛
рдмрд╛рд╣рд░ рд░реЛрд▓ рдХрд░рддреЗ рд╕рдордп рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ:
- рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЖрдзрд╛рд░ рд╣реИред
- рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдорд╢реАрдиреЗрдВ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдШреВрдорддрд╛ рд╣реИред
- рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рд░реЗрдВ рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкреА рд╣реБрдИ рд╣реИрдВред
- рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдкрд╣рд▓реЗ, рдЙрд╕рдХреЗ рджреМрд░рд╛рди рдФрд░ рдмрд╛рдж рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди (рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
- рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рд░реЛрдВ рдкрд░ рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдЙрд╕рдХреЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдХреЛрдб рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ)ред
рдпрджрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЗрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрд▓рдЖрдЙрдЯ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрди рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЫреЛрдЯреЗ рд░реЛрд▓рдЖрдЙрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣реИред
рдкреНрд░рддреНрдпрдХреНрд╖ рд░реЛрд▓рд┐рдВрдЧ рдЖрджреЗрд╢:
- рдкреНрд░рд╡рд╛рд╕ рдореЗрдВ рдмрд╛рдврд╝;
- рдмреИрд▓реЗрдВрд╕рд░ рд╕реЗ рдПрдХ рдорд╢реАрди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдорд╢реАрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдорд╢реАрди рдХреЛ рдмреИрд▓реЗрдВрд╕рд░ рдХреЛ рд▓реМрдЯрд╛ рджрд┐рдпрд╛;
- рд╕рднреА рдХрд╛рд░реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ред
рд░рд┐рд╡рд░реНрд╕ рд░реЛрд▓-рдЖрдЙрдЯ рдСрд░реНрдбрд░ рдЯреЗрдмрд▓ рдФрд░ рдХреЙрд▓рдореЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдЬрдм рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ CI рдХреЗ рд╕рднреА рдорд╛рдЗрдЧреНрд░реЗрд╢рдиреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддреЗ рд╣реИрдВ:
- рдмреИрд▓реЗрдВрд╕рд░ рд╕реЗ рдПрдХ рдорд╢реАрди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдорд╢реАрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдорд╢реАрди рдХреЛ рдмреИрд▓реЗрдВрд╕рд░ рдХреЛ рд▓реМрдЯрд╛ рджрд┐рдпрд╛;
- рд╕рднреА рдХрд╛рд░реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛;
- рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдореЗрдВ рдмрд╛рдврд╝ рдЖ рдЧрдИред
рд╕рд┐рджреНрдзрд╛рдВрдд
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ, рд╣рдо рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реИрдХрдбрд╝реЛрдВ рдФрд░ рд╣рдЬрд╛рд░реЛрдВ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рдПрдХ рд╣реА рдбреЗрдЯрд╛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рдкрдврд╝реЗрдВрдЧреЗ, рдФрд░ рдПрдХ рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдбреЗрдЯрд╛ рд╡реИрдз рд░рд╣реЗрдЧрд╛ рдФрд░ рднреНрд░рд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдкреВрд░реНрдг рдПрдлрдЖрдИрдбреАред рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрдВрддреНрд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдЕрд╡рд░реБрджреНрдз рд╣реИред
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдореЗрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд╛рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЖрдк рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рд╖рдп рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдЯреЗрдмрд▓ рдХреЛ рдХрд╡рд░ рдХрд░реВрдВрдЧрд╛ рдФрд░ рддрд╛рд▓реЗ рд▓рд┐рдЦреВрдВрдЧрд╛ред
рдЯреЗрдмрд▓ рд╕реНрддрд░ рдХреЗ рддрд╛рд▓реЗ
рдЯреЗрдмрд▓ рд╕реНрддрд░ рдкрд░, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдореЗрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд╛рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ , рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдмреАрдЪ рдЯрдХрд░рд╛рд╡ рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рддрд╛рд▓реЗ рдХреЗ рд╕рд╛рде рджреЛ рдСрдкрд░реЗрд╢рди рдПрдХ рд╕рд╛рде рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
| ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE |
---|
ACCESS SHARE | | | | | | | | рдПрдХреНрд╕ |
ROW SHARE | | | | | | | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
ROW EXCLUSIVE | | | | | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
SHARE UPDATE EXCLUSIVE | | | | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
SHARE | | | рдПрдХреНрд╕ | рдПрдХреНрд╕ | | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
SHARE ROW EXCLUSIVE | | | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
EXCLUSIVE | | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
ACCESS EXCLUSIVE | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ALTER TABLE tablename ADD COLUMN newcolumn integer
рдФрд░ SELECT COUNT(*) FROM tablename
рдХреЛ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рд╕рдЦреНрддреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╣рдо рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ COUNT(*)
рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдХреЙрд▓рдо рд╣реИрдВред
Django рдХреЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди (рдиреАрдЪреЗ рдкреВрд░реА рд╕реВрдЪреА) рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдСрдкрд░реЗрд╢рди рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рд▓реЗ рд╣реИрдВ:
рдЕрд╡рд░реБрджреНрдз | рд╕рдВрдЪрд╛рд▓рди |
---|
ACCESS EXCLUSIVE | CREATE SEQUENCE , DROP SEQUENCE , CREATE TABLE , DROP TABLE , рдЕрдиреНрдп ALTER TABLE , DROP INDEX |
SHARE | CREATE INDEX |
SHARE UPDATE EXCLUSIVE | CREATE INDEX CONCURRENTLY , DROP INDEX CONCURRENTLY , ALTER TABLE VALIDATE CONSTRAINT |
рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ, рд╕рднреА ALTER TABLE
рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЙрдХ рдирд╣реАрдВ рд╣реИ, рд╕рд╛рде рд╣реА django рдХреЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рдиреЛрдВ рдореЗрдВ CREATE INDEX CONCURRENTLY
рдФрд░ ALTER TABLE VALIDATE CONSTRAINT
, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдорд╛рдирдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЗрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдпрджрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдереНрд░реЗрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░рд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рд╕рдВрдШрд░реНрд╖ рдХреЗ рджреМрд░рд╛рди рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЕрд╡рд░реБрджреНрдз | рд╕рдВрдЪрд╛рд▓рди | рддрд╛рд▓реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ | рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рд╡рд┐рд░реЛрдз |
---|
ACCESS SHARE | SELECT | ACCESS EXCLUSIVE | ALTER TABLE , DROP INDEX |
ROW SHARE | SELECT FOR UPDATE | ACCESS EXCLUSIVE , EXCLUSIVE | ALTER TABLE , DROP INDEX |
ROW EXCLUSIVE | INSERT , UPDATE , DELETE | ACCESS EXCLUSIVE , EXCLUSIVE , SHARE ROW EXCLUSIVE , SHARE | ALTER TABLE , DROP INDEX , CREATE INDEX |
рдпрд╣рд╛рдВ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдЕрдЧрд░ рдЖрд╕рд╛рди рд▓реЙрдХрд┐рдВрдЧ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ
CREATE INDEX
рдФрд░ CREATE INDEX CONCURRENTLY
рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред - рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╕реНрдХреАрдорд╛ рд╕рдВрдШрд░реНрд╖ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ
ACCESS EXCLUSIVE
рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддреЗ рд╣реИрдВ, ACCESS EXCLUSIVE
, рд╣рдо рдЗрд╕ рд▓реЙрдХ рдХреЛ рдкрдХрдбрд╝рддреЗ рд╕рдордп рднреА SELECT
рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрднрд╡рддрдГ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬрдм рдпрд╣ рдСрдкрд░реЗрд╢рди рддреБрд░рдВрдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░рд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣реЛрдЧрд╛ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдПред
рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рд╣рдо рд╣рдореЗрд╢рд╛ ACCESS EXCLUSIVE
рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ, ACCESS EXCLUSIVE
, рд╣рдо рдирдИ рдкреНрд▓реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рд╡рд╣рд╛рдВ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ - рдордЬрд╝рдмреВрддреА рд╕реЗ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП, рдпрд╛ рд╣рдо рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ ACCESS EXCLUSIVE
рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рдЦрд┐рд▓рд╛рдл рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреЗ рд╣реИрдВ - рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЦрддрд░рдирд╛рдХ рд╣реИ, рд▓реЗрдХрд┐рди рддреЗрдЬрд╝ рд╣реИред
рд░рд┐рдХреЙрд░реНрдб рддрд╛рд▓реЗ
рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реНрддрд░ рдкрд░, рд╡рд╣рд╛рдБ рднреА рддрд╛рд▓реЗ рд╣реИрдВ https://www.postgresql.org/docs/current/static/explicit-locking.html#LOCKING-ROWS , рд╡реЗ рднреА рд╕рдВрдШрд░реНрд╖ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
| FOR KEY SHARE | FOR SHARE | FOR NO KEY UPDATE | FOR UPDATE |
---|
FOR KEY SHARE | | | | рдПрдХреНрд╕ |
FOR SHARE | | | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
FOR NO KEY UPDATE | | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
FOR UPDATE | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
рдпрд╣ рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрджрд┐ рд╣рдо рдкреВрд░реА рдкреНрд▓реЗрдЯ рдкрд░ UPDATE
рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрд╛рдХреА рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рддрд░реНрдХ, рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЙрдХ рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╣рдорд╛рд░реЗ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рднрд╛рдЧреЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдЗрд╖реНрдЯрддрдо рдпреЛрдЬрдирд╛ рдФрд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдХреНрд░рдо
рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреНрдЮрд╛рди рд╣реИ рдХрд┐ рдСрдкрд░реЗрд╢рди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХрдм рдФрд░ рдХреИрд╕реЗ рд╡реЗ рддрд╛рд▓реЗ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ:

рдпрд╣рд╛рдБ рдЖрдк рдирд┐рдореНрди рдорджреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдСрдкрд░реЗрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдордп - рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рд▓реЙрдХ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ, рдЕрдЧрд░ рд╣реЗрд╡реА рд▓реЙрдХ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣
CREATE INDEX
рдпрд╛ ALTER TABLE ADD COLUMN SET DEFAULT
рд╕рд╛рде рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдкреЛрд╕реНрдЯрдЧреНрд░рд╛рд╕ 11 рдореЗрдВ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ)ред - рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рддрд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп - рдЕрд░реНрдерд╛рдд, рдкреНрд░рд╡рд╛рд╕рди рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕рднреА рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рдЕрдиреБрд░реЛрдз рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд╕рдордп рдирдП рдЕрдиреБрд░реЛрдз рд╣рдорд╛рд░реЗ рдкреНрд░рд╡рд╛рд╕рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ, рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЕрдиреБрд░реЛрдз рдпрд╣рд╛рдВ рдмрд╣реБрдд рдЦрддрд░рдирд╛рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рддреЛ рдХреЗрд╡рд▓ рдЗрд╖реНрдЯрддрдо рдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рджреМрд░рд╛рди рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд▓рд╛рдпрдиред
- рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ - рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЕрдиреБрд░реЛрдз рд╣реИрдВ, рддреЛ рдореБрдлреНрдд рдХрдиреЗрдХреНрд╢рди рдЬрд▓реНрджреА рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╕реНрдерд╛рди рдХреЗ рдмрдЬрд╛рдп, рдкреВрд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдореЗрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╕реБрдкрд░рд╕реБрдЕрд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реАрдорд╛ рд╣реЛрдЧреА), рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдзреАрдореА рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░реЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреНрдпреВрдирддрдо рд▓реЛрдб рдХреЗ рджреМрд░рд╛рди рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВред
- рдПрдХ рд▓реЗрди-рджреЗрди рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдХрдИ рд╕рдВрдЪрд╛рд▓рди рд╣реЛрддреЗ рд╣реИрдВ - рдПрдХ рд▓реЗрдирджреЗрди рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрдЪрд╛рд▓рди, рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓реЙрдХ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рднрд╛рд░реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рднрд╛рд░реА рд▓реЙрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрди-рджреЗрди рдореЗрдВ рдХреЛрдИ рдбреЗрдЯрд╛
ALTER TABLE VALIDATE CONSTRAINT
рдбреЗрдЯрд╛ рдпрд╛ рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдирд╣реАрдВред
рд╕рдордп рд╕рдорд╛рдкреНрддрд┐
lock_timeout
рдореЗрдВ lock_timeout
рдФрд░ statement_timeout
рдЬреИрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ, рдЬреЛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦ рд╕рдХрддреА рд╣реИрдВ, рджреЛрдиреЛрдВ рд╣реА рдЦрд░рд╛рдм рд▓рд┐рдЦрд┐рдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реЗ рдФрд░ рдЦрд░рд╛рдм рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдЬрд┐рдирдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдФрд░ рд╡рд░реНрддрдорд╛рди рдХрдиреЗрдХреНрд╢рди рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
SET lock_timeout TO '2s'
рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рдзреАрдореЗ рдЕрдиреБрд░реЛрдзреЛрдВ / рд▓реЗрди-рджреЗрди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╕рдордп рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╕реЗ рдмрдЪ рдЬрд╛рдПрдЧрд╛: https://www.postgresql.org/docs/current/static/runtime-config-client.html##UC-LOCK-TIMEOUT ред
SET statement_timeout TO '2s'
рд╣реИрд╡реА рд▓реЙрдХ рд╕реЗ рднрд╛рд░реА рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╕реЗ рдмрдЪ рдЬрд╛рдПрдЧрд╛: https://www.postgresql.org/docs/current/static/runtime-config-client.html##UC-STATEMENT-TIMEOUT ред
Dedloki
рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдореЗрдВ рдЧрддрд┐рд░реЛрдз рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдЦрдж рдирд╣реАрдВ рд╣реИ рдЬрдм рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдардЧреЛрдВ рдкрд░ рд░реЛрд▓ рдХрд░рддреЗ рд╕рдордп рдбреЗрдбрд▓реЙрдХ рдкрдХрдбрд╝рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдореБрдЦреНрдп рд╕реНрд░реЛрдд рдПрдХ рд▓реЗрди-рджреЗрди рдФрд░ рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдСрдкрд░реЗрд╢рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреЛрдиреЛрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рддрд╛рд▓реЗ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╡рд╛рд╕ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЙрддрдирд╛ рд╣реА рдмреЗрд╣рддрд░ рдкрд░рдорд╛рдгреБред
рд░рд┐рдХреЙрд░реНрдб рднрдВрдбрд╛рд░рдг
рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реИрдЬрд░реНрд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ : рдпрджрд┐ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдирдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЗ рдкреВрд░реНрдг рдкреБрдирд░реНрд▓реЗрдЦрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЖрдХрд╛рд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╣реА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдЖрдпрд╛рдо рдХреЛ рдХрдо / рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрд▓реЗрдЦрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдШрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рд╕рднреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИрдВред рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рднреА рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред
рдорд▓реНрдЯреАрд╡рд░реНрд╕рди рдХрдВрд╕реАрд╡реЗрдВрд╕реА рдХрдВрдЯреНрд░реЛрд▓ (MVCC)
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╕реНрдерд┐рд░рддрд╛ рдбреЗрдЯрд╛ рдорд▓реНрдЯреАрд╡реЗрд░реЗрд╢рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЕрд░реНрдерд╛рдд рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдирджреЗрди рдФрд░ рдСрдкрд░реЗрд╢рди рдбреЗрдЯрд╛ рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦрддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдФрд░ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рднрд╛рд╡ рднреА рджреЗрддреА рд╣реИ рдЬрдм рдПрдХ рд╕реНрдХреАрдо рдХреЛ рдмрджрд▓рдирд╛ рдЬреИрд╕реЗ рдХреЙрд▓рдо рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдирд┐рдХрд╛рд▓рдирд╛ рдХреЗрд╡рд▓ рд╕реНрдХреАрдо рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдпрджрд┐ рдбреЗрдЯрд╛, рдЗрдВрдбреЗрдХреНрд╕ рдпрд╛ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЪрд╛рд▓рди рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдирд┐рдореНрди рд╕реНрддрд░ рдкрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдФрд░ рдЕрдкрдбреЗрдЯ рдСрдкрд░реЗрд╢рди рдирдП рдмрдирд╛рдПрдВрдЧреЗред рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб, рд╡рд┐рд▓реЛрдкрди, рд╣рдЯрд╛рдП рдЧрдП рд╕рдВрдмрдВрдзрд┐рдд рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдЧрд╛ред рд╢реЗрд╖ рдорд▓рдмреЗ рдХреА рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рд╡реИрдХреНрдпреВрдо рдпрд╛ рдСрдЯреЛ рд╡реИрдХреНрдпреВрдо рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
Django рдЙрджрд╛рд╣рд░рдг
рд╣рдореЗрдВ рдЕрдм рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд╣реИ рдХрд┐ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХрд┐рд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдЮрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ django рдХрд┐рд╕ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ ( https://github.com/django/django/blob/2.1.2.django) /db/backends/base/schema.py рдФрд░ https://github.com/django/django/blob/2.1.2/django/db/backends/postgresql/schema.py
| рдЖрдкрд░реЗрд╢рди |
---|
1 | CREATE SEQUENCE |
2 | DROP SEQUENCE |
3 | CREATE TABLE |
4 | DROP TABLE |
5 | ALTER TABLE RENAME TO |
6 | ALTER TABLE SET TABLESPACE |
7 | ALTER TABLE ADD COLUMN [SET DEFAULT] [SET NOT NULL] [PRIMARY KEY] [UNIQUE] |
8 | ALTER TABLE ALTER COLUMN [TYPE] [SET NOT NULL|DROP NOT NULL] [SET DEFAULT|DROP DEFAULT] |
9 | ALTER TABLE DROP COLUMN |
10 | ALTER TABLE RENAME COLUMN |
11 | ALTER TABLE ADD CONSTRAINT CHECK |
12 | ALTER TABLE DROP CONSTRAINT CHECK |
13 | ALTER TABLE ADD CONSTRAINT FOREIGN KEY |
14 | ALTER TABLE DROP CONSTRAINT FOREIGN KEY |
15 | ALTER TABLE ADD CONSTRAINT PRIMARY KEY |
16 | ALTER TABLE DROP CONSTRAINT PRIMARY KEY |
17 | ALTER TABLE ADD CONSTRAINT UNIQUE |
18 | ALTER TABLE DROP CONSTRAINT UNIQUE |
19 | CREATE INDEX |
20 | DROP INDEX |
Django рдореЗрд░реЗ рдкреНрд░рд╡рд╛рд╕ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рдмрд┐рдирд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдЦрддрд░рдирд╛рдХ рд╕рдВрдЪрд╛рд▓рди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо SHARE UPDATE EXCLUSIVE
рд▓реЙрдХрд┐рдВрдЧ рдпрд╛ ACCESS EXCLUSIVE
рд╕рд╛рде рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╣реЗрдВрдЧреЗ, рдЬреЛ рддреБрд░рдВрдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╣рдо SHARE
рдФрд░ ACCESS EXCLUSIVE
рддрд╛рд▓реЗ рдХреЗ рд╕рд╛рде рдЦрддрд░рдирд╛рдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╣реЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
рдореИрдВ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред
рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдФрд░ рд╣рдЯрд╛рдПрдВ
CREATE SEQUENCE
, DROP SEQUENCE
, CREATE TABLE
, DROP TABLE
рдХреЛ рд╕реЗрдл рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рдЬрдиреЗрд╕ рд▓реЙрдЬрд┐рдХ рдпрд╛ рддреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯреЗрдб рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдлреЙрд░рд╡рд░реНрдб рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рдЯреЗрдмрд▓ рдбрд┐рд▓реАрдЯ рдХрд░рдиреЗ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдереЛрдбрд╝рд╛ рдмрд╛рдж рдореЗрдВ рд╣реЛрдЧрд╛ред
рднрд╛рд░реА рдХрд╛рд░реНрдпрдкрддреНрд░рдХ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛
ALTER TABLE RENAME TO
- рдореИрдВ рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрд░реНрдХ рд▓рд┐рдЦрдирд╛ рдХрдард┐рди рд╣реИред
рдЬреИрд╕реЗ рд╣реА рдпрд╣ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд▓реЗрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддрдм ALTER TABLE SET TABLESPACE
- рдЕрд╕реБрд░рдХреНрд╖рд┐рдд, рдФрд░ рдпрд╣ рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рд▓реЗ рд╕рдХрддрд╛ рд╣реИред
рджреВрд╕рд░реА рдУрд░, рдпреЗ рдСрдкрд░реЗрд╢рди рдмреЗрд╣рдж рджреБрд░реНрд▓рдн рд╣реИрдВ, рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдк рдПрдХ рдирдИ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдФрд░ рдЙрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреЙрд▓рдо рдмрдирд╛рдПрдВ рдФрд░ рд╣рдЯрд╛рдПрдВ
ALTER TABLE ADD COLUMN
, ALTER TABLE DROP COLUMN
- рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (DEFAULT / NOT NULL / PRIMARY KEY / UNIQUE рдХреЗ рдмрд┐рдирд╛ рдирд┐рд░реНрдорд╛рдг), рдХреНрдпреЛрдВрдХрд┐ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдпрд╛ рддреЛ рдХрд┐рд╕реА рдорд╛рдЗрдЧреНрд░реЗрдЯреЗрдб рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, FOREIGN KEY рдХреЗ рд╕рд╛рде рдХреЙрд▓рдо рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдп рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдмрд╛рдж рдореЗрдВ рдЖрдПрдВрдЧреЗред
ALTER TABLE ADD COLUMN SET DEFAULT
, ALTER TABLE ADD COLUMN SET NOT NULL
, ALTER TABLE ADD COLUMN PRIMARY KEY
, ALTER TABLE ADD COLUMN UNIQUE
рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рди, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдХ рдХреЙрд▓рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░, рддрд╛рд▓реЗ рдЬрд╛рд░реА рдХрд┐рдП рдмрд┐рдирд╛, рдбрд┐рдлреЙрд▓реНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдХреА рддрд░рд╣ рдмрдирд╛рддреЗ рд╣реИрдВред рдЕрд╢рдХреНрдд рд╕реНрддрдВрдн рдФрд░ рдЖрдЧреЗ рдкрд░рд┐рд╡рд░реНрддрдиред
рдпрд╣ 11 SET DEFAULT
рдореЗрдВ рддреЗрдЬреА рд╕реЗ SET DEFAULT
рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ django рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ django рдХреЗрд╡рд▓ рдХреЙрд▓рдо рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП SET DEFAULT
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ DROP DEFAULT
рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдВрддрд░рд╛рд▓ рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рдЕрджреНрдпрддрди рдорд╢реАрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ, рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рддреН, рдлрд┐рд░ рд╕рднреА рд╕рдорд╛рди, рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВред
рд╡рд░реНрдХрд╢реАрдЯ рдкрд░ рднрд╛рд░реА рд╕рдорд░реНрдерди рд╡рд╛рд▓рд╛ рд╕рдВрдЪрд╛рд▓рди
ALTER TABLE RENAME COLUMN
- рдореИрдВ рднреА рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реНрддрдВрдн рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрд░реНрдХ рд▓рд┐рдЦрдирд╛ рдХрдард┐рди рд╣реИред рдмрд▓реНрдХрд┐, рдпрд╣ рдСрдкрд░реЗрд╢рди рднреА рдЕрдХреНрд╕рд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирдпрд╛ рдХреЙрд▓рдо рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрддрдВрдн рдкрд░рд┐рд╡рд░реНрддрди
ALTER TABLE ALTER COLUMN TYPE
- рдСрдкрд░реЗрд╢рди рдЦрддрд░рдирд╛рдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реБрд░рдХреНрд╖рд┐рдд рдпрджрд┐ рдХреЗрд╡рд▓ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╣реА рд╕реНрдХреАрдо рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪреЗрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
varchar(LESS)
рд╕реЗ varchar(MORE)
рдЯрд╛рдЗрдк рдкрд░рд┐рд╡рд░реНрддрди;- рдкреНрд░рдХрд╛рд░
varchar(ANY)
рдкрд░рд┐рд╡рд░реНрддрди varchar(ANY)
рд╕реЗ text
рдкрд░рд┐рд╡рд░реНрддрди; numeric(LESS, SAME)
рд╕реЗ numeric(LESS, SAME)
рдкрд░рд┐рд╡рд░реНрддрди numeric(MORE, SAME)
ред
ALTER TABLE ALTER COLUMN SET NOT NULL
рдЦрддрд░рдирд╛рдХ ALTER TABLE ALTER COLUMN SET NOT NULL
рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ NULL рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рдФрд░ рдЬрд╛рдВрдЪ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХреЛ рджреВрд╕рд░реЗ CHECK IS NOT NULL
рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ CHECK IS NOT NULL
ред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдПрдХ рдЕрд▓рдЧ рдпреЛрдЬрдирд╛ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рдорд╛рди рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рдеред
ALTER TABLE ALTER COLUMN DROP NOT NULL
, ALTER TABLE ALTER COLUMN SET DEFAULT
, ALTER TABLE ALTER COLUMN DROP DEFAULT
- рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рдиред
рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдмрдирд╛рдирд╛ рдФрд░ рд╣рдЯрд╛рдирд╛
ALTER TABLE ADD CONSTRAINT CHECK
рдФрд░ рдкреВрд░реНрд╡ ALTER TABLE ADD CONSTRAINT FOREIGN KEY
рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ NOT VALID
рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рддрдм ALTER TABLE VALIDATE CONSTRAINT
NOT VALID
рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
ALTER TABLE ADD CONSTRAINT PRIMARY KEY
рдФрд░ ALTER TABLE ADD CONSTRAINT UNIQUE
рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдВрджрд░ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк CONCURRENTLY
рд░реВрдк рдореЗрдВ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ USING INDEX
рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЗрдбреА-рдореЗрдб рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдмрдирд╛рдПрдВред
CREATE INDEX
рдПрдХ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдСрдкрд░реЗрд╢рди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ CONCURRENTLY
рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
ALTER TABLE DROP CONSTRAINT CHECK
, ALTER TABLE DROP CONSTRAINT CHECK
, ALTER TABLE DROP CONSTRAINT FOREIGN KEY
ALTER TABLE DROP CONSTRAINT PRIMARY KEY
, ALTER TABLE DROP CONSTRAINT UNIQUE
, DROP INDEX
- рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рдиред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ ALTER TABLE ADD CONSTRAINT FOREIGN KEY
рдФрд░ ALTER TABLE DROP CONSTRAINT FOREIGN KEY
рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рджреЛ рдЯреЗрдмрд▓ рд▓реЙрдХ рдХрд░рддреЗ рд╣реИрдВред
Django рдореЗрдВ рдЬреНрдЮрд╛рди рд▓рд╛рдЧреВ рдХрд░рдирд╛
Django рдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рднреА SQL рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдореЗрдВ рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реИ: https://docs.djangoproject.com/en/2.1/ref/migration-operations/#django.db.migrations.operations.RunSQL ред рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЬрд┐рд╕ рд╕реНрдерд╛рди рдХреЛ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ state_operations
ред
рдпрд╣ рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЗрдЦрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк db рдмреИрдХрдПрдВрдб рдкрд░ рдЧрдВрджрд╛ рдХрд╛рдо рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, https://github.com/tbicr/django-pg-zero-downtime-migrations//lob/master/django_zero_downtime_migrations_postgres_backend .py рд╡рд░реНрдгрд┐рдд рдкреНрд░рдерд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдордХрдХреНрд╖реЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЕрдВрдд рдореЗрдВ
рдЗрди рдкреНрд░рдерд╛рдУрдВ рдиреЗ рдореБрдЭреЗ рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ django рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдПрдХ рд╕рдорд╛рди рдпреЛрдЬрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЬрд┐рд╕рдореЗрдВ CHECK IS NOT NULL
рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕реНрдерд╛рди рдкрд░ NOT NULL
рдФрд░ рдХреБрдЫ рдирд┐рд░реНрдорд╛рдг рдирд╛рдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ALTER TABLE ADD COLUMN UNIQUE
рдФрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП) рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╡реИрдХрд▓реНрдкрд┐рдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рдЯреНрд░реЗрдб-рдСрдл рдореЗрдВ рд▓реЗрди-рджреЗрди рдХреА рдХрдореА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд╣рд╛рдВ CREATE INDEX CONCURRENTLY
рдФрд░ ALTER TABLE VALIDATE CONSTRAINT
ред
рдпрджрд┐ рдЖрдк рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЯреНрд╕ рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛ рдпреЛрдЬрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
- jsonb рдХрд╛ рдЙрдкрдпреЛрдЧ schamaless рдШреЛрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░
- рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рдмрд┐рдирд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛
рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдпрд╛ рддреЛ рд╕рдордпреЛрдкрд░рд┐ рдмрдврд╝рд╛рдиреЗ рдпрд╛ рдЪреЗрддрдирд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реБрдИред