diff --git a/sample/sample32-migrations/app.ts b/sample/sample32-migrations/app.ts new file mode 100644 index 000000000..ffd8842d9 --- /dev/null +++ b/sample/sample32-migrations/app.ts @@ -0,0 +1,39 @@ +import "reflect-metadata"; +import {ConnectionOptions, createConnection} from "../../src/index"; +import {Post} from "./entity/Post"; +import {Author} from "./entity/Author"; + +const options: ConnectionOptions = { + driver: { + type: "mysql", + host: "localhost", + port: 3306, + username: "root", + password: "admin", + database: "test" + }, + autoSchemaSync: true, + logging: { + // logQueries: true, + // logSchemaCreation: true, + // logFailedQueryError: true + }, + entities: [Post, Author], +}; + +createConnection(options).then(async connection => { + + let author = new Author(); + author.firstName = "Umed"; + author.lastName = "Khudoiberdiev"; + + let post = new Post(); + post.title = "hello"; + post.author = author; + + let postRepository = connection.getRepository(Post); + + await postRepository.persist(post); + console.log("Post has been saved"); + +}).catch(error => console.log("Error: ", error)); \ No newline at end of file diff --git a/sample/sample32-migrations/entity/Author.ts b/sample/sample32-migrations/entity/Author.ts new file mode 100644 index 000000000..d90e0bed5 --- /dev/null +++ b/sample/sample32-migrations/entity/Author.ts @@ -0,0 +1,15 @@ +import {PrimaryGeneratedColumn, Column, Table} from "../../../src/index"; + +@Table() +export class Author { + + @PrimaryGeneratedColumn() + id: number; + + @Column() + firstName: string; + + @Column() + lastName: string; + +} \ No newline at end of file diff --git a/sample/sample32-migrations/entity/Post.ts b/sample/sample32-migrations/entity/Post.ts new file mode 100644 index 000000000..b26af6d5a --- /dev/null +++ b/sample/sample32-migrations/entity/Post.ts @@ -0,0 +1,18 @@ +import {PrimaryGeneratedColumn, Column, Table, ManyToOne} from "../../../src/index"; +import {Author} from "./Author"; + +@Table() +export class Post { + + @PrimaryGeneratedColumn() + id: number; + + @Column() + title: string; + + @ManyToOne(type => Author, { + cascadeInsert: true + }) + author: Author; + +} \ No newline at end of file diff --git a/sample/sample32-migrations/migrations/1481283582-first-release-changes.ts b/sample/sample32-migrations/migrations/1481283582-first-release-changes.ts new file mode 100644 index 000000000..9e8fd3a54 --- /dev/null +++ b/sample/sample32-migrations/migrations/1481283582-first-release-changes.ts @@ -0,0 +1,15 @@ +import {MigrationInterface} from "../../../src/migration/MigrationInterface"; +import {Connection} from "../../../src/connection/Connection"; +import {QueryRunner} from "../../../src/query-runner/QueryRunner"; + +export class FirstReleaseMigration implements MigrationInterface { + + async up(queryRunner: QueryRunner, connection: Connection): Promise { + await queryRunner.query("ALTER TABLE `post` CHANGE `title` `name` VARCHAR(255)"); + } + + async down(queryRunner: QueryRunner, connection: Connection): Promise { + await queryRunner.query("ALTER TABLE `post` CHANGE `name` `title` VARCHAR(255)"); + } + +} \ No newline at end of file