Ruby On Rails in UA Icon_home Главная Add to bookmarks Translate translate Profile Войти
Регистрация Форум Блоги Пользователи Список джемов Rails проекты      Поиск   

Ruby On Rails in UA/Программирование на ROR/Как перенести данные из базы в фикстуры для тестов

2008-06-10 10:30:26 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1294
Регистр: 2007-03-13
его блог 40 сообщ.
Как перенести данные из базы в фикстуры для тестов
  •  
Зачастую для написания тестов необходимы фикстуры и иногда их можнопросто взять
development базы, по сему предлагаю два rake таска
для добавления их в свое приложения прсто скопируйте код в свой Rake файл который находиться у вас в каталоге приложения.

rake db:fixtures:dump_all
он сохранит все данные из ваших таблиц development базы в ямлы для тестов


rake db:fixtures:dump_references
сохранит только те таблицы которы епрописаны у него в конфиге, в данном случае это
["areas","countries"]



------------
Занимаюсь вебом и продвижением сайтов.
, ,
2008-06-09 10:02:15 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1294
Регистр: 2007-03-13
его блог 40 сообщ.
Rake task для загрузки приложения на svn
  •  
Подготавливаем приложени едля работы с svn одним rake таском.
------------
Занимаюсь вебом и продвижением сайтов.
, ,
2008-06-24 11:55:10 Ответить  
romb
Roman V. Babenko
Адрес: Kyiv
Сообщений: 310
Регистр: 2008-04-22
его блог 6 сообщ.
RE: Как перенести данные из базы в фикстуры для тестов
  •  
У этого подхода есть один недостаток. Несмотря на то, db:fixtures:load нормально загружает в базу кириличные тексты, данный метод вываливает их обратно в неудобочитаемом виде.
Как, то это нечесно с его стороны.
К тому же в тому же в то время когда его описывал автор(Джереми Кемпер), в рельсах небыло миграций и появилась еще одна таблица которую желательно исключить schema_migrations.
------------
http://romanvbabenko.blogspot.com Если в споре не родилась истина, то, по крайней мере, один из спорящих бесплоден.
2008-07-08 13:08:43 Ответить  
vgul
Vladislav
Адрес: Dnepropetrovsk
Сообщений: 7
Регистр: 2008-06-24
его блог 0 сообщ.
RE: Как перенести данные из базы в фикстуры для тестов
  •  
прошу прощения за свой вопрос дилетанта
но куда ж писать приведенный выше код ( task :dump_all, task :dump_references )
т.е. это должно быть два файла. Как их обозвать и таки ж куда положить ?

Заранее спасибо.
2008-07-08 15:52:45 Ответить  
romb
Roman V. Babenko
Адрес: Kyiv
Сообщений: 310
Регистр: 2008-04-22
его блог 6 сообщ.
RE: RE: Как перенести данные из базы в фикстуры для тестов
  •  
/lib/tasks/database.rake например
------------
http://romanvbabenko.blogspot.com Если в споре не родилась истина, то, по крайней мере, один из спорящих бесплоден.
2008-07-08 16:25:40 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1294
Регистр: 2007-03-13
его блог 40 сообщ.
RE: RE: RE: Как перенести данные из базы в фикстуры для тестов
  •  
или в Rake файл который ледит у тебя в корне проекта
------------
Занимаюсь вебом и продвижением сайтов.
2008-07-08 16:53:29 Ответить  
vgul
Vladislav
Адрес: Dnepropetrovsk
Сообщений: 7
Регистр: 2008-06-24
его блог 0 сообщ.
RE: RE: RE: RE: Как перенести данные из базы в фикстуры для тестов
  •  
у меня токи такое лежит...

vlad@d7:~/src/ruby/depot$ find . -maxdepth 1
.
./README
./db
./Rakefile
./vendor
./config
./app
./components
./public
./log
./test
./doc
./tmp
./lib
./script

пользуясь случаем - хочу спросить минимальный dump команд среды, по которому видно что где у меня и как лежит для ror.

vlad@d7:~/src/ruby/depot$ cat /etc/issue
Debian GNU/Linux 4.0 \n \l

и такое еще хочеться отправить
vlad@d7:~/src/ruby/depot$ dpkg -l | grep ruby
ii libdbd-mysql-ruby 0.1.1-1 Ruby/DBI driver for MySQL
ii libdbd-mysql-ruby1.8 0.1.1-1 Ruby/DBI MySQL driver for Ruby 1.8
ii libdbi-ruby1.8 0.1.1-1 Database Independent Interface for Ruby 1.8
ii liberb-ruby 2.0.4+ruby1.8.2-1 Tiny eRuby
ii libgems-ruby1.8 0.9.0-5 libraries to use RubyGems, a package managem
ii libmysql-ruby1.8 2.7.1-1+b1 MySQL module for Ruby 1.8
ii libopenssl-ruby1.8 1.8.5-4etch1 OpenSSL interface for Ruby 1.8
ii libpgsql-ruby1.8 0.7.1-10 PostgreSQL extension library for Ruby 1.8
ii libreadline-ruby1.8 1.8.5-4etch1 Readline interface for Ruby 1.8
ii libredcloth-ruby1.8 3.0.99.0.svn.20060519-1 Textile module for Ruby 1.8
ii libruby1.8 1.8.5-4etch1 Libraries necessary to run Ruby 1.8
ii rails 1.1.6-3 MVC ruby based framework geared for web appl
ii rake 0.7.1-1 a ruby build program
ii rdoc 1.8.2-1 Generate documentation from ruby source file
ii ruby 1.8.2-1 An interpreter of object-oriented scripting
ii ruby1.8 1.8.5-4etch1 Interpreter of object-oriented scripting lan
ii ruby1.8-examples 1.8.5-4etch1 Examples for Ruby 1.8
ii rubygems 0.9.0-5 package management framework for Ruby librar
ii vim-ruby 7.0-122+1etch3 Vi IMproved - enhanced vi editor - with Ruby

токи к примеру, у меня метод sum для стандартого примера из книги - не работает
нарыл де то в сети
# def total_price
# @items.sum( item.price )
# end

def total_price
@items.inject(0) {|sum, item| sum + item.price}
end

def total_items
@items.inject(0) {|sum, item| sum + item.quantity}
end


2008-08-11 21:54:12 Ответить  
alone
Serge
Адрес: Dnepropetrovsk
Сообщений: 15
Регистр: 2007-03-29
его блог 0 сообщ.
RE: RE: Как перенести данные из базы в фикстуры для тестов
  •  
Все по честному.
Фикстуры предначзначены для хранения данных в любой кодировке, поэтому при генерации ямла - данные преобразуются в утф последовательности.
Примерно так.
2008-08-11 22:09:34 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1294
Регистр: 2007-03-13
его блог 40 сообщ.
RE: Как перенести данные из базы в фикстуры для тестов
  •  
не могу понять ваш ход мысли к чему вы ведете или какой у вас вопрос сейчас???
Был вопрос на счет того куда это рейк таск писать так у тебя в корне есть файл Rakefile в него и пиши
------------
Занимаюсь вебом и продвижением сайтов.
2008-08-12 11:00:16 Ответить  
romb
Roman V. Babenko
Адрес: Kyiv
Сообщений: 310
Регистр: 2008-04-22
его блог 6 сообщ.
RE: RE: RE: Как перенести данные из базы в фикстуры для тестов
  •  
И все таки не очень чесно. Текст английскими буквами никуда не перкодируеться.
А вот кирилицу кушает, а назад отдает уже пережеванной. Сорри за нелитературные изречения :-)
------------
http://romanvbabenko.blogspot.com Если в споре не родилась истина, то, по крайней мере, один из спорящих бесплоден.
2008-08-15 09:35:49 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1294
Регистр: 2007-03-13
его блог 40 сообщ.
RE: RE: RE: RE: Как перенести данные из базы в фикстуры для тестов
  •  
5.0 из 1 гол.
В моих фикстурах есть текст на русском и загужается с забу он корректно, по этому есть веростность что надо в рейт таске установить кодировку приложения,

добавьте в начало файла.

Хотелось бынапомнить многоуважаемой публики елси вы используете mysql
то для создания таблиц с помошью миграций вам надо сделать примерно как показано ниже


Прошу уделить большое внимание строкам

ENGINE=InnoDB DEFAULT CHARSET=utf8

Хотя мне кажется что это решение может не помочь потому что гдето я читал насчте того что надо учить работать YAML в UTF8 потому как он дампит данные в файл.

К стати вот нарыл еще один джем который как обещают полностью работает в utf8

http://rubyforge.org/projects/ya2yaml/
думаю с ним данные будут дампиться в файл на русском точно.
------------
Занимаюсь вебом и продвижением сайтов.
, , , , ,
Назадназад Новыйновый Ответитьответить
Ключевые слова:
Гости: 1191 Онлайн: 0
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008