Database kodeeksempler Flashcards
const localSettings = {
username: ‘postgres’,
password: ‘test’,
database: ‘postgres’,
host: ‘localhost’,
dialect: ‘postgres’,
};
module.exports = {
development: localSettings,
test: localSettings,
deployment: localSettings,
};
Koden definerer et konfigurationsobjekt med pladsholdere for databaseforbindelsesoplysninger, som bliver eksporteret til udviklings-, test- og deployment miljøer.
export default new Sequelize(
process.env.DB_CONNECTION_STRING ??
‘postgres://postgres:test@localhost/postgres’,
{
dialectOptions: {
ssl: false,
},
},
);
Koden opretter forbindelse til en PostgreSQL-database, ved at konfigurere en forbindelses-string, som hentes fra en miljøvariabel (DB_CONNECTION_STRING) eller bruger en standardværdi.
Hvad er migrations?
Det er en en opdatering til databasestrukturen, ved hjælp af Sequelize.
module.exports = {
async up(queryInterface, Sequelize) {
const transaction = await queryInterface.sequelize.transaction();
try {
await queryInterface.createTable(
‘control_card_1’,
{
batch_type_1: {
type: Sequelize.DataTypes.INTEGER,
primaryKey: true,
},
Denne kode definerer en Sequelize-database migration, der opretter en tabel kaldet ‘control_card_1’ med en primær nøgle ‘batch_type_1’ af typen INTEGER.
async down(queryInterface) {
const transaction = await queryInterface.sequelize.transaction();
try {
await queryInterface.dropTable(‘control_card_1’, {
transaction,
});
await transaction.commit();
} catch (err) {
console.log(err);
await transaction.rollback();
throw err;
}
},
};
Den sletter en tabel ved navn ‘control_card_1’. Transaktioner bruges til at sikre, at operationen udføres atomisk. Fejl håndteres ved at rulle transaktionen tilbage og kaste fejlen igen.
Hvad er models?
Det er javaScript-klasser som repræsentere databasetabeller
@Table({
underscored: true,
tableName: ‘control_card_1’,
timestamps: false,
})
Denne kode definere at databasetabellen skal have navne i underscored-format.
Tabellen er navngivet ‘control_card_1’, og deaktiverer automatisk generering af tidsstempelkolonner.
export class ControlCard1 extends Model {
@PrimaryKey
@Column({ type: DataType.INTEGER, field: ‘batch_type_1’ })
declare batchType1: number;
}
databaseConnection.addModels([ControlCard1]);
koden laver en model for en tabel kaldet ‘ControlCard1’ med en primær nøgle batchType1 af typen INTEGER.
Modellen tilføjes derefter til en eksisterende databaseforbindelse.