TypeError:igrationCreator не является функцией
Я пытаюсь createAsset
используя контент-менеджмент-API.
Сценарий JavaScript, который я использую
./contentful/contentful-import.js
const contentful = require('contentful-management');
const client = contentful.createClient({
accessToken:'AUTHTOKEN'
});
client
.getSpace('SPACE')
.then(space => {
space.createAsset({
fields: {
title: {
'en-US': 'Example 1'
},
description: {
'en-US': 'Example Description'
},
file: {
'en-US': {
contentType: 'image/jpeg',
fileName: 'example1.jpeg',
upload:'https://example1.jpeg'
}
}
}
}),
space.createAsset({
fields: {
title: {
'en-US': 'Example 2'
},
description: {
'en-US': 'Example Description'
},
file: {
'en-US': {
contentType: 'image/jpeg',
fileName: 'example2.jpeg',
upload:'https://example2.jpeg'
}
}
}
}),
//... 700 other assets
})
.then(asset => asset.processForAllLocales())
.then(asset => console.log(asset))
.catch(console.error)
И CLI
Я запускаю функцию
contentful space migration ./contentful/contentful-import.js
Который возвращает ошибку TypeError: migrationCreator is not a function
Я смотрел в другом месте в документации Contentful, но я не вижу ничего, что помогает.
Я пытаюсь загрузить ресурсы правильно или я сделал что-то не так?
1 ответ
Сценарий, который вы написали, является "нормальным" сценарием node.js.
node contentful-import.js
Подойдет для этого просто отлично. contentful space migration
использует конкретные сценарии в определенном формате (они должны экспортировать migrationCreator
). Действительная миграция будет:
module.exports = function (migration, context) {
const dog = migration.createContentType('dog');
const name = dog.createField('name');
name.type('Symbol').required(true);
};
Contentful-cli использует контент-миграцию под капотом. Вы найдете больше документации там.
Я открою PR для документации CLI прямо сейчас.:)