fix: change the way the comma appears in the column SQL creation to fix a SQL syntax error
This commit is contained in:
@@ -46,8 +46,7 @@ impl ColumnSqlSerializer {
|
|||||||
query += "PRIMARY KEY ";
|
query += "PRIMARY KEY ";
|
||||||
}
|
}
|
||||||
|
|
||||||
query.push(',');
|
Ok(query.trim_end().to_string())
|
||||||
Ok(query)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,7 +69,7 @@ mod tests {
|
|||||||
let serializer = ColumnSqlSerializer{};
|
let serializer = ColumnSqlSerializer{};
|
||||||
let result = serializer.serialize(column).unwrap();
|
let result = serializer.serialize(column).unwrap();
|
||||||
|
|
||||||
assert_eq!(result, "id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ,".to_string());
|
assert_eq!(result, "id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY".to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -85,7 +84,7 @@ mod tests {
|
|||||||
let serializer = ColumnSqlSerializer{};
|
let serializer = ColumnSqlSerializer{};
|
||||||
let result = serializer.serialize(column).unwrap();
|
let result = serializer.serialize(column).unwrap();
|
||||||
|
|
||||||
assert_eq!(result, "name TEXT NOT NULL DEFAULT 'None' ,".to_string());
|
assert_eq!(result, "name TEXT NOT NULL DEFAULT 'None'".to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -100,6 +99,6 @@ mod tests {
|
|||||||
let serializer = ColumnSqlSerializer {};
|
let serializer = ColumnSqlSerializer {};
|
||||||
let result = serializer.serialize(column).unwrap();
|
let result = serializer.serialize(column).unwrap();
|
||||||
|
|
||||||
assert_eq!(result, "age INTEGER NOT NULL DEFAULT 18 ,".to_string());
|
assert_eq!(result, "age INTEGER NOT NULL DEFAULT 18".to_string());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,16 +6,13 @@ pub struct TableSqlSerializer {}
|
|||||||
|
|
||||||
impl TableSqlSerializer {
|
impl TableSqlSerializer {
|
||||||
pub fn serialize(self, table: Table) -> String {
|
pub fn serialize(self, table: Table) -> String {
|
||||||
let mut query = String::from("CREATE TABLE ");
|
|
||||||
query += &format!("{} (\n", table.name);
|
|
||||||
|
|
||||||
let column_serializer = ColumnSqlSerializer{};
|
let column_serializer = ColumnSqlSerializer{};
|
||||||
for column in table.columns {
|
let columns_sql: Vec<String> = table.columns
|
||||||
query += &column_serializer.serialize(column).unwrap();
|
.into_iter()
|
||||||
}
|
.map(|c| column_serializer.serialize(c).unwrap())
|
||||||
|
.collect();
|
||||||
|
|
||||||
query += ");";
|
format!("CREATE TABLE {} ({});", table.name, columns_sql.join(", "))
|
||||||
query
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,6 +40,6 @@ mod test {
|
|||||||
|
|
||||||
let result = serializer.serialize(table);
|
let result = serializer.serialize(table);
|
||||||
|
|
||||||
assert_eq!(result, "CREATE TABLE test (\nid INTEGER NOT NULL AUTO_INCREMENT ,);".to_string());
|
assert_eq!(result, "CREATE TABLE test (id INTEGER NOT NULL AUTO_INCREMENT);".to_string());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user