#[macro_use] extern crate diesel; use diesel::{pg::PgConnection, prelude::*}; use diesel_factories::{Association, Factory}; mod schema { table! { countries (id) { id -> Integer, name -> Text, } } table! { cities (id) { id -> Integer, name -> Text, country_id -> Integer, } } } #[derive(Clone, Queryable)] struct City { pub id: i32, pub name: String, pub country_id: i32, } #[derive(Clone, Queryable)] struct Country { pub id: i32, pub name: String, } #[derive(Clone, Factory)] #[factory(model = Country, table = crate::schema::countries)] struct CountryFactory { pub name: String, } impl Default for CountryFactory { fn default() -> Self { Self { name: "Denmark".into(), } } }