SQLAlchemy with StoreProcedure
์ ๋ชฉ์์ฒด๊ฐ ์ญ์ค์ ์ด์ง๋ง, ์ด๋ ๊ฒ ์จ์ผ ํ ๋๊ฐ ์๋ค. ์๋ฅผ๋ค๋ฉด, ๋ ๊ฑฐ์๋ฅผ ๋ค์ ์ฌ๊ฐ๋ฐํ๋ ์์ค์์ ํน์ ํ๋ก์์ ๋ ๋จ์ํ db๋ฅผ ์กฐํํ๋ ๊ฒ ์ด์์ ํ๋ก๊ทธ๋๋ฐ์ ์ธ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์๋๊ฐ ์๋ค. ๋ํ, ๋ค๋ฅธ ์ด์ ๋ก ORM์ธ SQLAlchemy์ ์ ์ฅํ๋ก์์ ๋ฅผ ํผํฉํด์ผํ ๋๊ฐ ์๋๋ฐ, ๊ทธ๋ด๋ ๋ฐ๋ก ์ ์ฅํ๋ก์์ ์ฉ ์ฝ๋๋ฅผ ์ฐ๊ธฐ ๋ณด๋ค๋ SQLAlchemy ๋ฅผ ์ด์ฉํด์ ํ๋ก์์ ๋ฅผ ์คํํ๊ณ ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ์ข๋ค.
๊ฐ์ธ์ ์ผ๋ก SQLAlchemy๋ฅผ ์จ์ ์ข๋ค๊ณ ์๊ฐํ๋ ์ด์ ๋ ์ ์ง๋ณด์ ํ๋ ์ ์ฅ์์ DB์ฐ๊ฒฐ ๋ฌธ์์ด ๋ฑ๊ณผ ๊ฐ์ ๊ด๋ฆฌํฌ์ธํธ๋ ํ๋๋ก ์ ์งํ๋ฉด ์ข๊ณ , ORM ์ธ์ ๋ช๊ฐ์ ํ๋ก์์ ๋ฅผ ์ํด์ DB์ฐ๊ฒฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ข ์์ ์ธ ์ฝ๋๋ฅผ ์ง๊ณ ์ถ์ง ์๋ค๋ ๊ฒ์ ๋๊ผ๋ค.(์๋๋ค๋ ๊ฒ์ด ์๋๋ค.)
์์ ์ฝ๋๋ Flask-SQLAlchemy ๋ก ์ง ์ฝ๋์ธ๋ฐ, ์ผ๋ฐ SQLAlchemy๋ฅผ ์์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ์ฝ๊ฒ ์ดํดํ ์ ์๋ ์ฝ๋์ด๋ค. ๋ค๋ฅธ ๊ฒ๋ณด๋ค๋ raw_connection()
ํจ์์ ๋ํด์ ์ค๋ช
ํ์๋ฉด ํ๋ก์๋ DBAPI ์ฐ๊ฒฐ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋๋ฐ, ์ค์ DBAPI ์ฐ๊ฒฐ๊ณผ ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ๋ค๊ณ ํ๋ค. ๋จ close()
ํจ์์ ํํด์๋ ์์ธ์ ์ผ๋ก ์ค์ ๋ก ์ฐ๊ฒฐ์ด ๋์ด์ง๋ ๊ฑฐ์ด ์๋๋ผ pool๋ก ๋ฆฌํด๋์ด ์ง๋ค๊ณ ํ๋ค.
์๋ฌธ์ ์๋์ ๊ฐ๋ค.
raw_connection(connection=None)
Return a โrawโ DBAPI connection from the connection pool.
The returned object is a proxied version of the DBAPI connection object used by the underlying driver in use. The object will have all the same behavior as the real DBAPI connection, except that its close() method will result in the connection being returned to the pool, rather than being closed for real.
This method provides direct DBAPI connection access for special situations when the API provided by Connection is not needed. When a Connection object is already present, the DBAPI connection is available using the Connection.connection accessor.