En este tutorial te enseñaré a llenar tu base de datos con datos aleatorios. Podrás llenar base de datos con teléfonos, direcciones, nombres, poemas, etc.
Creación de base de datos
Costo Estimado : 0 USD
Crear y llenar una base de datos
descargar sequel
Para crear la base de datos usé un bonito framework para ruby llamado sequel que de hecho es opensource.
crear un script para tablas
La estructura basica es la siguiente
DB.create_table :users do
primary_key :id
String :identificador
String :username
String :fullname
String :email
foreign_key :user_session_state, :user_session_states
foreign_key :user_state, :user_states
String :phone
endllenar usando faker
faker es otro framework opensource en ruby se usaría algo asi
users = DB[:users]
users.insert(identificador: Faker::Alphanumeric.alphanumeric(number: 10),username: Faker::Creature::Animal.name+prng.rand(1..100).to_s, fullname: Faker::Name.name, email: Faker::Internet.email, user_session_state:1, user_state:1, phone: Faker::PhoneNumber.phone_number+””)
cabe destacar que faker tiene implementaciones para otros lenguajes de programacion
Ejemplo
En mi caso el script de creación de tablas usando sequel quedaría:
DB.create_table :app_themes do
primary_key :id
String :name
String :primary
end
DB.create_table :user_session_states do
primary_key :id
String :state
end
DB.create_table :user_states do
primary_key :id
String :state
end
DB.create_table :languages do
primary_key :id
String :identifier
String :lang
end
DB.create_table :users do
primary_key :id
String :identificador
String :username
String :fullname
String :email
foreign_key :user_session_state, :user_session_states
foreign_key :user_state, :user_states
String :phone
end
DB.create_table :about_states do
primary_key :id
String :state
foreign_key :user_id, :users
TrueClass :active
end
DB.create_table :user_configs do
primary_key :id
foreign_key :user_id, :users
foreign_key :language_id, :languages
foreign_key :app_theme, :app_themes
end
DB.create_table :image_sizes do
primary_key :id
String :size
Integer :height
Integer :width
end
DB.create_table :user_images do
primary_key :id
foreign_key :user_id, :users
foreign_key :image_size_id, :image_sizes
end
DB.create_table :rooms do
primary_key :id
String :name
TrueClass :is_private
end
DB.create_table :room_participants do
primary_key :id
foreign_key :room_id, :rooms
foreign_key :user_id, :users
end
DB.create_table :message_types do
primary_key :id
String :type
end
DB.create_table :messages do
primary_key :id
String :message
foreign_key :room_id, :rooms
foreign_key :user_id, :users
foreign_key :message_type_id, :message_types
end
DB.create_table :room_settings do
primary_key :id
String :primary_color
foreign_key :room_id, :rooms
end
DB.create_table :friend_states do
primary_key :id
String :state
end
DB.create_table :friends do
primary_key :id
foreign_key :friend_state, :friend_states
foreign_key :sender_id, :users
foreign_key :receptor_id, :users
end
Llenar base de datos con aleatorios
posteriormente para insertar datos usé otro framework sencillamente genial llamado faker que también da la casualidad que es opensource.
users = DB[:users]
rooms = DB[:rooms]
messages = DB[:messages]
message_types = DB[:message_types]
room_participants = DB[:room_participants]
user_session_states = DB[:user_session_states]
user_states = DB[:user_states]
prng = Random.new
message_types.insert(type: 'General')
user_session_states.insert(state: 'Initial')
user_states.insert(state: 'Online')
3.times do
users.insert(identificador: Faker::Alphanumeric.alphanumeric(number: 10),username: Faker::Creature::Animal.name+prng.rand(1..100).to_s, fullname: Faker::Name.name, email: Faker::Internet.email, user_session_state:1, user_state:1, phone: Faker::PhoneNumber.phone_number+"")
rooms.insert(name: Faker::Team.sport, is_private: Faker::Boolean.boolean)
end
room_participants.insert(room_id:1,user_id:1)
room_participants.insert(room_id:1,user_id:2)
room_participants.insert(room_id:1,user_id:3)
room_participants.insert(room_id:2,user_id:1)
room_participants.insert(room_id:2,user_id:2)
room_participants.insert(room_id:2,user_id:3)
room_participants.insert(room_id:3,user_id:1)
room_participants.insert(room_id:3,user_id:2)
room_participants.insert(room_id:3,user_id:3)
300.times do
messages.insert(message: Faker::Fantasy::Tolkien.poem, room_id: prng.rand(1..3), user_id: prng.rand(1..3), message_type_id: 1)
end