PostgreSQL 모든 테이블 삭제(Drop Table)

Laravel migration 중 schema 이름이 변경되었을 경우 artisan migrate 명령어가 동작하지 않는다.


이런 경우 스키마내 모든 테이블을 삭제하면 됨.


먼저 psql 로 해당 스키마 연결

psql -U user -d dbname



DO $$ DECLARE
    r RECORD;
BEGIN
    -- if the schema you operate on is not "current", you will want to
    -- replace current_schema() in query with 'schematodeletetablesfrom'
    -- *and* update the generate 'DROP...' accordingly.
    FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP
        EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
    END LOOP;
END $$;



Ref

같이 보기