2013-10-10 2 views
0

Я пытаюсь заполнить базу данных Mongo приложения CompoundJS с помощью файлов семян, но всякий раз, когда я запускаю compound seed, терминал зависает после моих операторов console.log ... база данных заполняется, но я нужно убить команду с помощью Ctrl-c.CompoundJS: Заполнение базы данных с помощью файла семени зависает

Я пробовал делать compound seed harvest, но это не создает правильные файлы семян, поэтому я решил сделать свой собственный. Вот мой соответствующий код:

дб/семена/разработка/Host.js (файл семян)

console.log("Seeding Hosts...."); 

var hosts = [ 
    { 
    hid: '1', 
    name: 'MY API', 
    domain: 'mydomain.com' 
    } 
]; 

hosts.forEach(function(obj, err){ 
    Host.create(obj, function(err, host){ 
    console.log('host Added: ', host); 
    }); 
}); 

дб/schema.js

var Host = describe('Host', function() { 
    property('hid', String); 
    property('name', String); 
    property('domain', String); 
    set('restPath', pathTo.hosts); 
}); 

конфигурации/базы данных .js

module.exports = { 
    development: { 
     driver: 'mongodb', 
     url:  'mongodb://localhost/apicache-dev' 
    }, 
    test: { 
     driver: 'mongodb', 
     url:  'mongodb://localhost/apicache-test' 
    }, 
    production: { 
     driver: 'mongodb', 
     url:  'mongodb://localhost/apicache-production' 
    } 
}; 

Как я уже сказал, когда я запускаю compound seed, он показывает оба оператора console.log, и он помещает мои данные в базу данных, но он просто зависает ... никогда не возвращается в командную строку, поэтому я вынужден убить это с помощью Ctrl-c. Я хотел бы решить эту проблему, поскольку мне приходится автоматизировать этот процесс, и это немного сложно автоматизировать, если он просто висит. Что я делаю не так? Любая помощь будет оценена!

Cross-posted.

EDIT

Так что, когда я пытаюсь использовать версию сценария кофе, который генерируется из compound seed harvest:

дб/семена/разработка/Host.coffee

Host.seed -> 
    hid: '1' 
    name: 'MY API' 
    domain: 'mydomain.com' 
    id: "52571edd2ac9056339000001" 

Я получаю ошибку имя коллекции должно быть строкой. Так что мне было немного любопытно, и я пошел туда, где эта ошибка генерировалась ... в node_modules/jugglingdb-mongodb/node_modules/mongodb/lib/mongodb/collection.js в строке 103. Я положил console.log(collectionName) прямо перед этим, если заявление и увидел интересный вывод ...

{ hid: '1', 
    name: 'MY API', 
    domain: 'mydomain.com', 
    id: NaN } 

Итак, ясно, что это не строка, а объект хэша, и имя моей коллекции (хоста) нигде не видно. Кажется, это ошибка.

ответ

1

Так что, наконец, я получил его на работу. По-видимому, что-то не так с авто-genned id из команды сбора урожая, поэтому я в конечном итоге удалил эту линию и вуаля! Посадка семян работает как шарм. Я преобразовал остальные файлы JS в файлы сценариев кофе, и все работает. Иногда вам просто нужно иметь разговор с самим собой в Интернете ...

Вот мой файл семян:

Host.seed -> 
    hid: '1' 
    name: 'MY API' 
    domain: 'mydomain.com' 

И делать compound seed работы без подвешивания и заполнит базу данных. Угадай сценарий кофе - это путь?

Смежные вопросы