Introduced version policy for PostgreSQL

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Added changeset

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Updated API Report

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Updated references to use 12 and 16

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Attempt to fix tests

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Added back old Ids

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Fixed test

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Updated API Report and test

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Added new setDefaults static method and related changes

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Updated API Report

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Improved logic based on feedback

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Added missing changeset

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Changes based on feedback

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

API Report correction

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Updated to use new setDefaults

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
This commit is contained in:
Andre Wanlin
2023-11-23 12:26:24 -06:00
parent c6c6be1e35
commit b7de76ae72
44 changed files with 180 additions and 93 deletions
@@ -37,7 +37,7 @@ jest.setTimeout(60_000);
describe('StaticAssetsStore', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
ids: ['MYSQL_8', 'POSTGRES_16', 'POSTGRES_12', 'SQLITE_3'],
});
it.each(databases.eachSupportedId())(
@@ -28,9 +28,7 @@ const keyBase = {
jest.setTimeout(60_000);
describe('DatabaseKeyStore', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
it.each(databases.eachSupportedId())(
'should store a key, %p',
+1 -3
View File
@@ -42,9 +42,7 @@ async function migrateUntilBefore(knex: Knex, target: string): Promise<void> {
jest.setTimeout(60_000);
describe('migrations', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
it.each(databases.eachSupportedId())(
'20230428155633_sessions.js, %p',
+6
View File
@@ -14,4 +14,10 @@
* limitations under the License.
*/
import { TestDatabases } from '@backstage/backend-test-utils';
export {};
TestDatabases.setDefaults({
ids: ['MYSQL_8', 'POSTGRES_16', 'POSTGRES_12', 'SQLITE_3'],
});
@@ -36,7 +36,7 @@ jest.setTimeout(60_000);
describe('DatabaseHandler', () => {
const databases = TestDatabases.create({
ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3', 'MYSQL_8'],
ids: ['POSTGRES_16', 'POSTGRES_12', 'SQLITE_3', 'MYSQL_8'],
});
function createDatabaseManager(
@@ -26,7 +26,7 @@ jest.setTimeout(60_000);
describe('WrapperProviders', () => {
const applyDatabaseMigrations = jest.fn();
const databases = TestDatabases.create({
ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3', 'MYSQL_8'],
ids: ['POSTGRES_16', 'POSTGRES_12', 'SQLITE_3', 'MYSQL_8'],
});
const config = new ConfigReader({});
const logger = getVoidLogger();
@@ -25,9 +25,7 @@ jest.setTimeout(60_000);
describe('DefaultCatalogDatabase', () => {
const defaultLogger = getVoidLogger();
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
async function createDatabase(
databaseId: TestDatabaseId,
@@ -37,9 +37,7 @@ jest.setTimeout(60_000);
describe('DefaultProcessingDatabase', () => {
const defaultLogger = getVoidLogger();
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
async function createDatabase(
databaseId: TestDatabaseId,
@@ -28,9 +28,7 @@ jest.setTimeout(60_000);
describe('DefaultProviderDatabase', () => {
const defaultLogger = getVoidLogger();
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
async function createDatabase(
databaseId: TestDatabaseId,
@@ -28,9 +28,7 @@ import { deleteWithEagerPruningOfChildren } from './deleteWithEagerPruningOfChil
jest.setTimeout(60_000);
describe('deleteWithEagerPruningOfChildren', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
async function createDatabase(databaseId: TestDatabaseId) {
const knex = await databases.init(databaseId);
@@ -21,9 +21,7 @@ import { getDeferredStitchableEntities } from './getDeferredStitchableEntities';
jest.setTimeout(60_000);
describe('getDeferredStitchableEntities', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
it.each(databases.eachSupportedId())(
'selects the right rows %p',
@@ -22,9 +22,7 @@ import { DbRefreshStateRow } from '../../tables';
jest.setTimeout(60_000);
describe('markDeferredStitchCompleted', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
it.each(databases.eachSupportedId())(
'completes only if unchanged %p',
@@ -22,9 +22,7 @@ import { DbFinalEntitiesRow, DbRefreshStateRow } from '../../tables';
jest.setTimeout(60_000);
describe('markForStitching', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
it.each(databases.eachSupportedId())(
'marks the right rows in deferred mode %p',
@@ -30,9 +30,7 @@ import { performStitching } from './performStitching';
jest.setTimeout(60_000);
describe('performStitching', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
const logger = getVoidLogger();
// NOTE(freben): Testing the deferred path since it's a superset of the immediate one
@@ -29,9 +29,7 @@ import { deleteOrphanedEntities } from './deleteOrphanedEntities';
jest.setTimeout(60_000);
describe('deleteOrphanedEntities', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
async function createDatabase(databaseId: TestDatabaseId) {
const knex = await databases.init(databaseId);
@@ -22,9 +22,7 @@ import { DefaultLocationStore } from './DefaultLocationStore';
jest.setTimeout(60_000);
describe('DefaultLocationStore', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
async function createLocationStore(databaseId: TestDatabaseId) {
const knex = await databases.init(databaseId);
@@ -44,9 +44,7 @@ describe('DefaultEntitiesCatalog', () => {
await knex.destroy();
});
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
const stitch = jest.fn();
const stitcher: Stitcher = { stitch } as any;
@@ -39,9 +39,7 @@ jest.setTimeout(60_000);
describe('DefaultRefreshService', () => {
const defaultLogger = getVoidLogger();
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
async function createDatabase(
databaseId: TestDatabaseId,
@@ -14,4 +14,10 @@
* limitations under the License.
*/
import { TestDatabases } from '@backstage/backend-test-utils';
export {};
TestDatabases.setDefaults({
ids: ['MYSQL_8', 'POSTGRES_16', 'POSTGRES_12', 'SQLITE_3'],
});
@@ -30,9 +30,7 @@ import { DefaultStitcher } from './DefaultStitcher';
jest.setTimeout(60_000);
describe('Stitcher', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
const logger = getVoidLogger();
it.each(databases.eachSupportedId())(
@@ -42,9 +42,7 @@ async function migrateUntilBefore(knex: Knex, target: string): Promise<void> {
jest.setTimeout(60_000);
describe('migrations', () => {
const databases = TestDatabases.create({
ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
});
const databases = TestDatabases.create();
it.each(databases.eachSupportedId())(
'latest version correctly cascades deletions, %p',
@@ -155,7 +155,7 @@ class Tracker {
describePerformanceTest('stitchingPerformance', () => {
const databases = TestDatabases.create({
ids: [/* 'MYSQL_8', */ 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
ids: [/* 'MYSQL_8', */ 'POSTGRES_16', 'POSTGRES_12', 'SQLITE_3'],
});
it.each(databases.eachSupportedId())(
@@ -38,7 +38,7 @@ describe('util', () => {
describe('supported', () => {
const databases = TestDatabases.create({
ids: ['POSTGRES_13', 'POSTGRES_9'],
ids: ['POSTGRES_16', 'POSTGRES_12'],
});
if (databases.eachSupportedId().length < 1) {
@@ -117,7 +117,7 @@ describe('FactRetrieverEngine', () => {
}
const databases = TestDatabases.create({
ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
ids: ['POSTGRES_16', 'POSTGRES_12', 'SQLITE_3'],
});
async function createEngine(
@@ -26,7 +26,7 @@ import { createRouter } from './router';
describe('createRouter', () => {
let app: express.Express;
const databases = TestDatabases.create({
ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
ids: ['POSTGRES_16', 'POSTGRES_12', 'SQLITE_3'],
});
beforeAll(async () => {
@@ -48,7 +48,7 @@ export async function createStandaloneApplication(
const app = express();
const databases = TestDatabases.create({
ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
ids: ['POSTGRES_16', 'POSTGRES_12', 'SQLITE_3'],
});
const knex = await databases.init('SQLITE_3');
const databaseManager: Partial<DatabaseManager> = {