1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { DataTypes } from '@sequelize/core';
- import { expect } from 'chai';
- import { sequelize } from '../support';
- const queryInterface = sequelize.queryInterface;
- describe('QueryInterface#dropTable', () => {
- describe('Without schema', () => {
- beforeEach(async () => {
- await queryInterface.createTable('levels', {
- id: {
- type: DataTypes.INTEGER,
- autoIncrement: true,
- primaryKey: true,
- },
- name: {
- type: DataTypes.STRING,
- allowNull: false,
- },
- });
- });
- it('should drop a table', async () => {
- await queryInterface.dropTable('levels');
- const exists = await queryInterface.tableExists('levels');
- expect(exists).to.be.false;
- });
- if (sequelize.dialect.supports.dropTable.cascade) {
- it('should drop a table with dependencies', async () => {
- await queryInterface.createTable('actors', {
- id: {
- type: DataTypes.INTEGER,
- autoIncrement: true,
- primaryKey: true,
- },
- levelId: {
- type: DataTypes.INTEGER,
- references: {
- table: 'levels',
- key: 'id',
- },
- },
- });
- await queryInterface.dropTable('levels', { cascade: true });
- const allTables = await queryInterface.listTables();
- const tableNames = allTables.map(table => table.tableName);
- // Cascade only removes the foreign key constraint, not the related table
- expect(tableNames).to.deep.equal(['actors']);
- });
- }
- });
- if (sequelize.dialect.supports.schemas) {
- describe('With schema', () => {
- beforeEach(async () => {
- await queryInterface.createSchema('archive');
- await queryInterface.createTable(
- { tableName: 'levels', schema: 'archive' },
- {
- id: {
- type: DataTypes.INTEGER,
- primaryKey: true,
- autoIncrement: true,
- },
- name: {
- type: DataTypes.STRING,
- allowNull: false,
- },
- },
- );
- });
- it('should drop a table', async () => {
- await queryInterface.dropTable({ tableName: 'levels', schema: 'archive' });
- const exists = await queryInterface.tableExists({ tableName: 'levels', schema: 'archive' });
- expect(exists).to.be.false;
- });
- });
- }
- });
|