1.0.75 • Published 1 year ago

directus-migration-tools v1.0.75

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

Install

npm i directus-migration-tools

Config

  • Migration file extensions/migrations/[indentity]-name.js
const {generateField, upCreateKnex, downCreateKnex} = require('directus-migration-tools')

const config = [
    {
        collection: {
            name: "product",
        },
        fields: {
            id: generateField.genPrimaryKey("uuid"),
            name: generateField.genNormal()
        }
    },
    {
        collection: {
            name: "languages",
            meta: {
                group: "news_groups"
            }
        },
        fields: {
            code: generateField.genPrimaryKey("string"),
            name: generateField.genNormal()
        }
    },
    {
        collection: {
            name: "news_groups",
            meta: {
                icon: "accessibility",
                note: "note string",
                ///color: "#2ECDA7" ,
                translations: [
                    {
                        language: "en-US",
                        translation: "Groups News"
                    }
                ]
            }
        }
    },
    {
        collection: {
            name: "tags",
            meta: {
                group: "news"
            }
        },
        fields: {
            id: generateField.genPrimaryKey(),
            title: generateField.genNormal(),
        }
    },
    {
        collection: {
            name: "news_category",
            meta: {
                group: "news"
            }
        },
        fields: {
            id: generateField.genPrimaryKey(),
            title: generateField.genNormal(),
            translations: generateSpecField.translations("languages", "projects_categories_translations",{
                title: generateField.genNormal(),
            },{
				meta: {
					display: "translations",
					display_options: {
						template: "{{title}}",
						languageField: "name",
						defaultLanguage: "vi-Vi",
						userLanguage: true,
					},
				},
            }),
			files: generateSpecField.files("news_category_files",{
				meta: {
					hidden: true,
				},
			}),
			content: generateSpecField.wysiwyg({
				meta: {
					hidden: true,
					conditions: [overviewAndProblemsCondition],
				},
			}),
        }
    },
    {
        collection: {
            name: "news",
            meta: {
                group: "news_groups"
            }
        },
        fields: {
            id: generateField.genPrimaryKey(),
            title: generateField.genNormal(),
            date_created: generateField.genDatetime("date-created"),
            date_updated: generateField.genDatetime("date-updated"),
            category: generateField.generateM2o("news_category"),
            tags: generateField.generateM2m("tags","news_tags"),
            translations: generateField.generateM2m("languages","news_translations", {
                meta: {
                    special: ["translations"],
                    interface: "translations"
                }
            }, {
                title: generateField.genNormal(),
                intro: generateField.genNormal(),
                test: generateField.generateM2o("languages"),
                field_m2o: generateField.generateM2o("tags"),
                field_m2m: generateField.generateM2m("product","news_product_related")
            }),
        }
    },
	{
		collection: {
			name: "menus" ,
		} ,
		fields: {
			id: generateField.genPrimaryKey("integer",{
				meta: {
					sort: 1
				}
			}) ,
			sort: generateSpecField.sort({
				meta: {
					sort: 2
				}
			}) ,
			user_created: generateSpecField.userCreated({
				meta: {
					sort: 3
				}
			}) ,
			date_created: generateSpecField.dateCreated({
				meta: {
					sort: 4
				}
			}) ,
			name: generateField.genNormal("string" , {
				meta: {
					sort: 5
				}
			}) ,
			menu_items: generateField.generateO2m("menu_item" , {
				related_field: "menu" ,
				meta: {
					sort: 6
				}
			})
		}
	} ,
	{
		collection: {
			name: "menu_item" ,
			meta: {
				group: "menus"
			}
		} ,
		fields: {
			id: generateField.genPrimaryKey("integer",{
				meta: {
					sort: 1
				}
			}),
			sort: generateSpecField.sort({
				meta: {
					sort: 2
				}
			}) ,
			user_created: generateSpecField.userCreated({
				meta: {
					sort: 3
				}
			}) ,
			date_created: generateSpecField.dateCreated({
				meta: {
					sort: 4
				}
			}) ,
			name: generateField.genNormal("string" , {
				meta: {
					sort: 5
				}
			}) ,
			url: generateField.genNormal("string" , {
				meta: {
					sort: 6
				}
			}) ,
			target: generateSpecField.radioButton([
				{
					"text": "default" ,
					"value": "default"
				} ,
				{
					"text": "_blank" ,
					"value": "_blank"
				}] , {
				meta: {
					sort: 7
				}
			}) ,
			parent: generateField.generateM2o("menu_item",{
				meta: {
					sort: 8
				}
			})
		}
	}
]


module.exports = {
    async up(knex) {
        await upCreateKnex(knex, config)
    },
    async down(knex) {
        await downCreateKnex(knex, config)
    },
};
1.0.75

1 year ago

1.0.74

1 year ago

1.0.5-6.1

1 year ago

1.0.73

1 year ago

1.0.72

1 year ago

1.0.71

1 year ago

1.0.55

1 year ago

1.0.54

1 year ago

1.0.53

1 year ago

1.0.52

1 year ago

1.0.56

1 year ago

1.0.44

1 year ago

1.0.43

1 year ago

1.0.42

1 year ago

1.0.48

1 year ago

1.0.47

1 year ago

1.0.46

1 year ago

1.0.45

1 year ago

1.0.49

1 year ago

1.0.51

1 year ago

1.0.50

1 year ago

1.0.41

1 year ago

1.0.40

1 year ago

1.0.39

1 year ago

1.0.38

1 year ago

1.0.37

1 year ago

1.0.36

1 year ago

1.0.35

1 year ago

1.0.34

1 year ago

1.0.33

1 year ago

1.0.32

1 year ago

1.0.31

1 year ago

1.0.30-test-1

1 year ago

1.0.30-test

1 year ago

1.0.30

1 year ago

1.0.29

1 year ago

1.0.28

1 year ago

1.0.27

1 year ago

1.0.26

1 year ago

1.0.24

1 year ago

1.0.23

1 year ago

1.0.22

1 year ago

1.0.21

1 year ago

1.0.20

1 year ago

1.0.19

1 year ago

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago